A minimalist modern educational platform inspired by Khan Academy with organized courses and lessons. This platform provides structured learning paths through various subjects, tracks user progress, and awards achievements.
- 📚 Organized Courses & Lessons: Browse through various subjects and enroll in structured courses
- 📊 Progress Tracking: Track your learning progress across all courses
- 🏆 Achievement System: Earn achievements as you complete courses and maintain learning streaks
- 📅 Learning Calendar: Keep track of your study sessions with an integrated calendar view
- 📱 Responsive Design: Enjoy a seamless experience across desktop and mobile devices
-
Frontend:
- React 18
- TailwindCSS
- ShadcnUI (UI component library)
- React Query (for data fetching)
- Wouter (for routing)
- Zod (for form validation)
-
Backend:
- Node.js
- Express.js
- Drizzle ORM (with in-memory storage)
- Node.js (version 18 or higher)
- npm (version 7 or higher) or yarn
-
Clone the repository:
git clone https://github.com/yourusername/edulearn-platform.git cd edulearn-platform -
Install dependencies:
npm install # or yarn install -
Environment setup (optional - for future database integration):
cp .env.example .env # Edit .env with your configuration
To start the application in development mode:
npm run devThis will start both the backend server and the frontend development server. The application will be available at:
- Application URL: http://localhost:3000
To create a production build:
npm run buildTo start the production server:
npm startedulearn-platform/
├── client/ # Frontend React application
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Page components
│ │ ├── hooks/ # Custom React hooks
│ │ ├── lib/ # Utility functions
│ │ └── main.tsx # Entry point
├── server/ # Backend Express server
│ ├── routes.ts # API endpoints
│ ├── storage.ts # Data storage implementation
│ ├── index.ts # Server entry point
│ └── vite.ts # Vite server configuration
├── shared/ # Shared code between frontend and backend
│ └── schema.ts # Data models and validation schemas
├── drizzle.config.ts # Drizzle ORM configuration
├── vite.config.ts # Vite configuration
├── tailwind.config.ts # Tailwind CSS configuration
├── package.json # Dependencies and scripts
└── README.md # Project documentation
The backend provides the following RESTful API endpoints:
GET /api/subjects- Get all subjectsGET /api/courses- Get all coursesGET /api/courses/:id- Get course detailsGET /api/lessons/:courseId- Get lessons for a coursePOST /api/enrollments- Enroll in a courseGET /api/enrollments- Get user's enrolled coursesGET /api/achievements- Get all achievementsGET /api/user/achievements- Get user's earned achievementsGET /api/user/streaks- Get user's learning streaks
The platform includes a simple authentication system using Express sessions. Users can:
- View their personalized dashboard
- Track progress across enrolled courses
- Earn and view achievements
- Maintain learning streaks
- Add PostgreSQL database support
- Implement user authentication with JWT
- Create admin panel for content management
- Add quiz/assessment functionality
- Implement social learning features
Contributions are welcome! Please feel free to submit issues and pull requests.
- Fork the repository
- Create your 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
Please ensure your code follows the project's coding standards and includes appropriate tests.
This project is licensed under the MIT License - see the LICENSE file for details.
- Khan Academy for inspiration
- ShadcnUI for the beautiful UI components
- Replit for development tools
