- Overview
- Key Features
- Tech Stack
- Performance Optimizations
- Screenshots
- Live Demo
- Installation
- Project Structure
- API Documentation
- Contributing
- Roadmap
- License
- Acknowledgments
Codify is a comprehensive educational platform designed to help users learn coding through interactive courses, personalized learning paths, and expert-curated roadmaps. The platform features a modern, responsive interface with dark/light theme support, progress tracking, and a robust course management system.
Our mission is to make coding education accessible, engaging, and effective for learners at all levels, from beginners to advanced developers.
- Interactive Courses: Engage with dynamic coding lessons and tutorials
- Personalized Dashboard: Track your progress, continue watching, and manage saved courses
- Course Roadmaps: Follow structured learning paths for different programming domains
- Dark/Light Theme: Choose your preferred visual experience with theme color customization
- Progress Tracking: Monitor your learning journey with detailed statistics
- Responsive Design: Seamless experience across all devices
- Comprehensive Admin Panel: Manage users, courses, and content
- Course Management: Add, edit, and organize courses and learning materials
- User Management: Monitor user activity and progress
- Analytics Dashboard: Track platform usage and engagement metrics
- React 18: Component-based UI development
- TailwindCSS: Utility-first CSS framework for styling
- React Router: Client-side routing
- Context API: State management
- Lazy Loading: Performance optimization for components and routes
- JWT Authentication: Secure user authentication
- Node.js: JavaScript runtime
- Express: Web application framework
- MongoDB: NoSQL database for data storage
- Mongoose: MongoDB object modeling
- JWT: JSON Web Tokens for authentication
- Vite: Next-generation frontend tooling
- ESLint: Code quality and style checking
- Netlify: Frontend deployment and hosting
- Git & GitHub: Version control and collaboration
Codify implements several performance optimization techniques:
- Lazy Loading: Components and routes are loaded on demand
- Code Splitting: Bundle splitting for faster initial load times
- Memoization: Prevents unnecessary re-renders with useMemo and useCallback
- Image Optimization: Efficient image loading and rendering
- SEO Optimization: Comprehensive meta tags and structured data
- Responsive Design: Optimized for all device sizes
Experience Codify in action: https://codifylearn.netlify.app
- Regular User:
- Email: demo@codify.com
- Password: demo123
- Admin User:
- Email: admin@codify.com
- Password: admin123
- Node.js (v16 or higher)
- npm or yarn
- MongoDB (local or cloud instance)
- Clone the repository
git clone https://github.com/roshansuthar1105/codify-frontend.git
- Navigate to the client directory
cd codify-frontend/client
- Install dependencies
npm install # or yarn install
- Create a
.env
file in the client directory with the following variables:VITE_API_URL=http://localhost:5000/api VITE_YOUTUBE_API=your_youtube_api_key
- Start the development server
npm run dev # or yarn dev
- Open your browser and navigate to
http://localhost:5173
- Clone the backend repository
git clone https://github.com/roshansuthar1105/codify-backend.git
- Navigate to the server directory
cd codify-backend
- Install dependencies
npm install # or yarn install
- Create a
.env
file with the following variables:PORT=5000 MONGODB_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret
- Start the server
npm start # or yarn start
client/
βββ public/ # Static files
βββ src/
β βββ components/ # Reusable UI components
β βββ context/ # React Context providers
β βββ layouts/ # Page layout components
β βββ pages/ # Main application pages
β βββ store/ # State management
β βββ utils/ # Utility functions
β βββ App.jsx # Main application component
β βββ main.jsx # Application entry point
βββ index.html # HTML template
βββ vite.config.js # Vite configuration
server/
βββ controllers/ # Request handlers
βββ models/ # Database models
βββ routes/ # API routes
βββ middleware/ # Custom middleware
βββ utils/ # Utility functions
βββ server.js # Server entry point
POST /api/auth/register
- Register a new userPOST /api/auth/login
- Login a userGET /api/auth/me
- Get current user information
GET /api/v1/courses
- Get all coursesGET /api/v1/courses/:id
- Get a specific coursePOST /api/v1/courses
- Create a new course (admin only)PUT /api/v1/courses/:id
- Update a course (admin only)DELETE /api/v1/courses/:id
- Delete a course (admin only)
GET /api/progress
- Get user's progress for all coursesGET /api/progress/:courseId
- Get user's progress for a specific coursePUT /api/progress/:courseId
- Update user's progress for a course
GET /api/activity
- Get user's activity historyPOST /api/activity/add
- Add a new activity record
GET /api/user/watchlist
- Get user's watchlistPOST /api/user/addToWatchlist
- Add/remove a course to/from watchlist
We welcome contributions to Codify! Here's how you can help:
- 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
Please read our Contributing Guidelines for more details.
- Mobile application (React Native)
- Interactive code editor and playground
- Peer-to-peer learning and mentorship
- Gamification elements (badges, achievements)
- AI-powered learning recommendations
- Community forums and discussion boards
- Integration with GitHub for project-based learning
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by leading educational platforms like Coursera, Udemy, and freeCodeCamp
- Special thanks to all contributors and the open-source community
- YouTube API for video content integration
- All the amazing instructors who provided course content