This project involves building a React-based web application it showcases a list of courses and their details, a student dashboard, and real-time updates for course likes.
- React.js: Used with Vite for fast development and build tooling.
- Tailwind CSS and DaisyUI: For styling and UI components.
- Redux Toolkit: For state management.
- TypeScript: For type safety and better developer experience.
- Axios: For HTTP requests to interact with the backend.
- React Router DOM: For routing.
- Socket.IO Client: For real-time web socket communications.
- Express: Web server framework.
- MongoDB with Mongoose: For the database and data modeling.
- JWT: For secure authentication.
- Socket.IO: For real-time communication between clients and server.
- Navigate to the server directory:
cd server
- Install dependencies:
npm install
- Start the server:
npm run dev
- Rename .env.sample to .env
- Navigate to the frontend directory:
cd client
- Install dependencies:
npm install
- Start the development server:
npm run dev
- Rename .env.sample to .env
Ensure you have the following environment variables set in your .env
file in the server:
PORT
: Port at which server is runningMONGO_URI
: Your MongoDB connection string.JWT_SECRET
: Secret key for JWT token generation.
Ensure you have the following environment variables set in your .env
file in the client:
VITE_BASE_URL
: Contains the base url of the backnedVITE_SOCKET_URL
: Contain the socket url.
- Secure login implementation with JWT.
- User registration with email conflict checking.
- Displays a list of courses fetched from the backend.
- Supports searching, sorting, and filtering; state managed in URL for persistence across sessions.
- Click on a course to view detailed information.
- Displays detailed information about a course.
- Real-time likes feature implemented using Socket.IO.
- Shows a summary view for a student with enrolled courses and their progress.
- Displays courses the student is enrolled in with a progress indicator.
- Allows marking courses as completed.