A comprehensive course management system built with modern web technologies, featuring user authentication, role-based access control, and course administration capabilities.
- User Authentication: Secure login and signup with JWT tokens
- Role-Based Access: Separate dashboards for Students and Admins
- Course Management: Create, update, and manage courses
- Responsive Design: Modern UI built with React and Tailwind CSS
- Email Integration: Email services for notifications and verification
- Database Integration: MongoDB for data persistence
- Logging: Comprehensive logging with Pino
- React 19 - Modern React with hooks and concurrent features
- TypeScript - Type-safe JavaScript
- Vite - Fast build tool and development server
- Tailwind CSS - Utility-first CSS framework
- React Router - Client-side routing
- Node.js - JavaScript runtime
- Express.js - Web application framework
- TypeScript - Type-safe JavaScript
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
- JWT - JSON Web Tokens for authentication
- bcrypt - Password hashing
- Pino - High-performance logging
- Resend - Email service
- Zod - Schema validation
- Node.js (v18 or higher)
- MongoDB (local or cloud instance)
- npm or yarn package manager
-
Clone the repository
git clone https://github.com/Sachinchaurasiya360/CourseFlow cd CourseFlow -
Install client dependencies
cd client npm install -
Install server dependencies
cd ../server npm install -
Environment Setup
Create a
.envfile in theserverdirectory with the following variables:MONGODB_URI=mongodb://localhost:27017/courseflow JWT_SECRET=your-jwt-secret-key RESEND_API_KEY=your-resend-api-key
-
Start MongoDB
Make sure MongoDB is running on your system or update the
MONGODB_URIto point to your cloud database.
-
Start the backend server
cd server npm run devThe server will start on
http://localhost:3000 -
Start the frontend client
cd client npm run devThe client will start on
http://localhost:5173
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the ISC License - see the package.json files for details.
Sachin Chaurasiya
Built with ❤️ using modern web technologies c:\CodeBase\CourseFlow\README.md