Educify is a comprehensive Learning Management System (LMS) designed to facilitate online education for students, instructors, and administrators. It provides a robust platform for course creation, enrollment, progress tracking, and interactive learning.
- User Roles & Authentication:
- Secure authentication system.
- Distinct roles: Student, Instructor, and Admin.
- Course Management:
- Instructors can create, edit, and publish courses.
- Support for rich media content including video modules, documents, and text lessons.
- Course categorization and difficulty levels.
- Student Experience:
- Enroll in courses and track learning progress.
- Wishlist functionality to save courses for later.
- Submit reviews and ratings for courses.
- Earn certificates upon course completion.
- Dashboard & Analytics:
- Personalized dashboards for students and instructors to track activities.
- Frontend: Next.js (React framework), Tailwind CSS
- Backend: Next.js Server Actions / API Routes
- Database: PostgreSQL (via Supabase)
- ORM: Prisma
- Storage: AWS S3 (for course assets like videos and thumbnails)
- Authentication: Custom implementation (bcrypt, jose)
Follow these steps to set up the project locally.
- Node.js (LTS version recommended)
- npm or yarn
- PostgreSQL database (or a Supabase project)
- AWS S3 Bucket credentials
-
Clone the repository:
git clone https://github.com/AVBharath10/Educifyy.git cd Educifyy -
Install dependencies:
npm install
-
Environment Setup:
Create a
.envfile in the root directory and add the following variables:DATABASE_URL="postgresql://user:password@host:port/database?schema=public" # Add other necessary variables for JWT, AWS S3, etc. JWT_SECRET="your_jwt_secret" AWS_ACCESS_KEY_ID="your_aws_key" AWS_SECRET_ACCESS_KEY="your_aws_secret" AWS_REGION="your_aws_region" AWS_BUCKET_NAME="your_bucket_name"
-
Database Setup:
Push the Prisma schema to your database:
npx prisma generate npx prisma db push
(Optional) Seed the database:
npm run prisma:seed
-
Run the Development Server:
npm run dev
Open http://localhost:3000 with your browser to see the application.
npm run dev: Starts the development server.npm run build: Builds the application for production.npm start: Starts the production server.npm run lint: Runs ESLint.npm run prisma:generate: Generates the Prisma client.npm run prisma:migrate: Runs Prisma migrations.npm run db:push: Pushes schema changes to the database.
Contributions are welcome! Please feel free to submit a Pull Request.