- Java 17 or Java 21
- Maven
- Node.js and npm
- PostgreSQL
-
Create a PostgreSQL database:
CREATE DATABASE elearning;
-
Configure database connection in
backend/src/main/resources/application.properties:spring.datasource.url=jdbc:postgresql://localhost:5432/elearning spring.datasource.username=your_username spring.datasource.password=your_password
-
Navigate to the backend directory and build the project:
cd backend mvn clean install
-
Navigate to the frontend directory:
cd frontend -
Install dependencies:
npm install
- From the backend directory:
The backend will run on http://localhost:8080
mvn spring-boot:run
- From the frontend directory:
The frontend will run on http://localhost:3000
npm start
- User Registration: Create a new account with username, email, password, and full name
- User Authentication: Login with username and password, JWT token-based authentication
- Home Page: Landing page with platform information and features
- Security: Secured endpoints with role-based access control
- Course creation and management
- Course enrollment
- Content upload and management
- Interactive learning features (quizzes, assignments)
- Discussion forums
- Progress tracking
- Certification generation
-
POST /api/auth/signup: Register a new user{ "username": "user123", "email": "user@example.com", "password": "password123", "fullName": "John Doe" } -
POST /api/auth/signin: Login{ "username": "user123", "password": "password123" }
GET /hello: Simple test endpoint that returns "Hello World!"GET /endpoints: Lists all available API endpoints (for debugging)
| Column | Type | Description |
|---|---|---|
| id | BIGINT | Primary key |
| username | VARCHAR(255) | Unique username |
| VARCHAR(255) | Unique email | |
| password | VARCHAR(255) | Encrypted password |
| full_name | VARCHAR(255) | User's full name |
| enabled | BOOLEAN | Account status |
| Column | Type | Description |
|---|---|---|
| user_id | BIGINT | Foreign key reference to Users table |
| role | VARCHAR(255) | Role (ROLE_STUDENT, ROLE_INSTRUCTOR...) |
-
Database Connection Error:
- Verify PostgreSQL is running
- Check database credentials in application.properties
- Ensure the database exists
-
Backend Not Starting:
- Check console for specific error messages
- Verify port 8080 is not in use
-
Frontend Not Starting:
- Verify Node.js is installed
- Check for errors in the npm install process
- Ensure port 3000 is not in use
-
Authentication Issues:
- Verify JWT configuration
- Check security filter chain configuration
- Ensure correct endpoints are being permitted
-
API Call Errors:
- Verify the correct URL is being used
- Check that the Content-Type header is set to application/json
- Ensure the request body follows the expected format
-
Course Management:
- Course creation and editing
- Content organization
- Enrollment management
-
Learning Content:
- Video lectures
- Interactive quizzes
- Assignments
-
User Interaction:
- Discussion forums
- Live chat
- Peer review
-
Analytics:
- Learning progress tracking
- Course analytics
- Performance insights
-
Mobile Support:
- Responsive design
- Mobile app integration
Developed as part of a learning project. For questions or support, contact the development team.