A comprehensive educational platform that combines AI-powered content generation, interactive learning, and progress tracking to deliver personalized learning experiences.
- AI-Powered Content Generation: Dynamic lesson content and quiz generation using advanced AI
- Interactive Learning Modules: Comprehensive lessons, quizzes, and short questions
- Progress Tracking: Real-time tracking of topic completion and learning progress
- Subject Management: Organized learning paths with topic-based structure
- Quiz System: Adaptive quizzes with instant feedback
- AI Helper: Contextual assistance and explanations using AI
- Adaptive Quizzes: AI-generated quizzes tailored to topic difficulty
- Lesson Content: Interactive lessons with markdown support
- Short Questions: Quick assessment tools
- Resources Management: Organized learning materials
- Weakness Analysis: Identify and focus on challenging topics
- Games Integration: Gamified learning experiences
- JWT Authentication: Secure user authentication and authorization
- Real-time Updates: Live progress updates and content synchronization
- Caching System: Optimized content delivery and performance
- File Upload: Support for various educational materials
- Email Integration: Notifications and communication system
- Framework: Next.js 15.2.2 with React 19
- Styling: Tailwind CSS with custom components
- UI Components: Radix UI primitives with shadcn/ui
- Icons: Lucide React, React Icons
- Animations: Framer Motion
- State Management: Zustand
- Forms: React Hook Form with Zod validation
- Rich Text: Quill editor, React Markdown
- Charts: Recharts for data visualization
- Runtime: Node.js with TypeScript
- Framework: Express.js
- Database: Neon PostgreSQL with Drizzle ORM
- AI Integration: Google GenAI, OpenAI, Langchain
- Vector Database: Pinecone for AI embeddings
- Authentication: JWT with bcrypt
- File Storage: AWS S3
- Email: Nodemailer
- Real-time: Socket.IO
- Node.js 18+
- PostgreSQL database (Neon recommended)
- AWS S3 bucket (for file storage)
- OpenAI API key
- Google GenAI API key
- Pinecone account
NEXT_PUBLIC_API_URL=http://localhost:8000
NEXT_PUBLIC_APP_NAME=EduLearn# Database
DATABASE_URL=your_neon_database_url
DB_HOST=your_db_host
DB_PORT=5432
DB_USER=your_db_user
DB_PASSWORD=your_db_password
DB_NAME=your_db_name
# JWT
JWT_SECRET=your_jwt_secret
JWT_REFRESH_SECRET=your_jwt_refresh_secret
# AI Services
OPENAI_API_KEY=your_openai_api_key
GOOGLE_GENAI_API_KEY=your_google_genai_key
PINECONE_API_KEY=your_pinecone_api_key
PINECONE_ENVIRONMENT=your_pinecone_environment
# AWS S3
AWS_ACCESS_KEY_ID=your_aws_access_key
AWS_SECRET_ACCESS_KEY=your_aws_secret_key
AWS_REGION=your_aws_region
AWS_S3_BUCKET=your_s3_bucket_name
# Email
SMTP_HOST=your_smtp_host
SMTP_PORT=587
SMTP_USER=your_smtp_user
SMTP_PASS=your_smtp_password
# App
PORT=8000
NODE_ENV=development
CLIENT_URL=http://localhost:3000- Clone the repository
git clone <repository-url>
cd DeltaCoders-Final-Test- Install dependencies
# Install client dependencies
cd client
npm install
# Install server dependencies
cd ../server
npm install- Database Setup
cd server
# Generate database schema
npm run db:generate
# Run migrations
npm run db:migrate
# (Optional) Open database studio
npm run db:studio- Start Development Servers
Terminal 1 - Backend:
cd server
npm run devTerminal 2 - Frontend:
cd client
npm run dev- Access the Application
- Frontend: http://localhost:3000
- Backend: http://localhost:8000
- Database Studio: http://localhost:4983 (if running)
DeltaCoders-Final-Test/
βββ client/ # Frontend Next.js application
β βββ src/
β β βββ app/ # App router pages
β β β βββ (admin)/ # Admin dashboard routes
β β β βββ (application)/ # Public application routes
β β β βββ (auth)/ # Authentication routes
β β βββ components/ # Reusable UI components
β β β βββ ui/ # Base UI components (shadcn)
β β β βββ custom/ # Custom components
β β βββ lib/ # Utilities and configurations
β β βββ styles/ # Global styles
β βββ public/ # Static assets
β βββ package.json
β
βββ server/ # Backend Express.js application
β βββ src/
β β βββ controllers/ # Route controllers
β β βββ middleware/ # Express middleware
β β βββ routes/ # API routes
β β βββ db/ # Database configuration
β β βββ utils/ # Helper functions
β β βββ index.ts # Server entry point
β βββ package.json
β
βββ README.mdPOST /api/auth/login- User loginPOST /api/auth/register- User registrationPOST /api/auth/refresh- Refresh access tokenPOST /api/auth/logout- User logout
GET /api/subject/all- Get all subjectsGET /api/subject/:subjectId- Get subject by IDGET /api/subject/progress/:subjectId- Get subject progressPOST /api/subject/add-subject- Add user subjectDELETE /api/subject/remove/:userSubjectId- Remove user subject
POST /api/content/generate-lesson- Generate AI lesson contentPOST /api/quiz/generate- Generate AI quizGET /api/quiz/load/:topicId- Load existing quiz
GET /api/progress/user- Get user progressPOST /api/progress/update- Update progress
- Register/Login to access the platform
- Browse Subjects and add them to your learning path
- Explore Topics within each subject
- Study Lessons with AI-generated content
- Take Quizzes to test your knowledge
- Track Progress and identify weak areas
- Access Resources for additional learning materials
- Generate Content using AI-powered tools
- Create Quizzes tailored to specific topics
- Monitor Progress of learners
- Analyze Weaknesses to provide targeted support
- Manage Resources and learning materials
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLintnpm run dev # Start development server with watch mode
npm run build # Compile TypeScript
npm run start # Start production server
npm run db:generate # Generate database schema
npm run db:migrate # Run database migrations
npm run db:studio # Open database studio
npm run db:push # Push schema changes- TypeScript for type safety
- ESLint for code linting
- Prettier for code formatting (recommended)
- Conventional Commits for commit messages
- Connect your GitHub repository to Vercel
- Set environment variables in Vercel dashboard
- Deploy automatically on push to main branch
- Create a new application
- Set environment variables
- Connect to your database
- Deploy using Git or Docker
- Create a Neon project
- Copy connection string to
DATABASE_URL - Run migrations:
npm run db:migrate
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the ISC License. See the LICENSE file for details.
- OpenAI for GPT integration
- Google for GenAI services
- Vercel for Next.js framework
- Neon for PostgreSQL database
- shadcn/ui for beautiful UI components
- Radix UI for accessible primitives
For support and questions:
- Create an issue on GitHub
- Contact the development team
- Check documentation and API references