EduSync is an all-in-one, AI-powered educational platform designed to transform the teaching and learning experience. Built using Next.js and React, EduSync provides a comprehensive suite of features for administrators, teachers, and students. Its core strength lies in its seamless integration of artificial intelligence, which empowers dynamic content generation, real-time tutoring, adaptive assessments, and personalized learning experiences.
- Features
- Technology Stack
- Project Structure
- Installation
- Usage
- Development
- Deployment
- Contributing
- License
- Dynamic Lesson Creation: Automatically generate lesson summaries, detailed explanations, worksheets, and quizzes tailored to specific subjects and grade levels.
- Adaptive Feedback: Receive instant, AI-generated feedback on student code submissions and assessment answers.
- Personalized Learning: Use intelligent insights to adapt and recommend content based on each student's progress and performance.
- Real-time AI Tutor Chat: Engage in interactive sessions with an AI tutor for on-demand support and clarification for complex topics.
- Intelligent Code Editor: Leverage the Monaco Editor integration for an interactive development environment enhanced with AI-driven debugging and suggestions.
- Progress Tracking: Monitor learning progress through detailed dashboards that display performance metrics, practice exercises, and assessment analytics.
- Admin Dashboard: Access comprehensive statistics, including total assessments, average scores, user activity, and AI-powered insights for strategic decision-making.
- Timetable Management: Easily create, update, and manage class schedules, along with real-time collaborative editing features.
- User Management: Benefit from a role-based access system ensuring that administrators, teachers, and students have tailored experiences.
- Real-Time Collaboration: Collaborate via live chat, whiteboard sessions, and real-time updates facilitated by Socket.io.
- Third-Party Content Integration: Use the Tavily API to fetch and convert external content into Markdown, enriching lesson material with diverse resources.
- Data Visualization: Utilize Recharts for clear and interactive visual representation of performance metrics and course analytics.
- Framework: Next.js (Server-side and Client-side rendering)
- Frontend: React, Tailwind CSS (with dark mode and utility-first design)
- Backend: Node.js, MongoDB with Mongoose
- AI Services: OpenAI integration for real-time content generation and tutoring
- Editor: Monaco Editor for interactive coding and development exercises
- Visualization: Recharts for dynamic charts and performance reports
- Real-Time Collaboration: Socket.io for live interactions and updates
- UI Components: shadcn/ui components (Cards, Tables, Tabs, etc.)
- Icons: lucide-react
EduSync
├── src/
│ ├── app/ # Next.js pages and dynamic routes
│ │ ├── admin/ # Admin dashboards and management pages
│ │ ├── teachers/ # Teacher pages for lesson creation, content generation, and resource management
│ │ ├── students/ # Student interfaces including lessons, practice modules, and AI chat tutor
│ │ └── ... # Additional routes for content and assessments
│ ├── components/ # Reusable UI components (CodeEditor, Cards, Tables, etc.)
│ ├── lib/ # API actions, utilities, and third-party integration scripts (e.g., Tavily API)
│ ├── models/ # Mongoose models (e.g., Progress)
│ └── app/globals.css # Global Tailwind CSS styles
├── public/ # Static assets and uploads
├── package.json # Project dependencies and scripts
├── tailwind.config.ts # Tailwind configuration
└── README.md # Project documentation (this file)
-
Clone the Repository:
git clone https://github.com/your-username/edusync.git cd edusync -
Install Dependencies:
npm install # or yarn install -
Configure Environment Variables:
Create a
.env.localfile in the root of the project and add the following variables:NEXT_PUBLIC_API_URL=<your-api-url> OPENAI_API_KEY=<your-openai-api-key> TAVILY_API_KEY=<your-tavily-api-key> MONGODB_URI=<your-mongodb-uri> NEXTAUTH_SECRET=<your-nextauth-secret>
-
Run the Development Server:
npm run dev # or yarn dev -
Access the Application:
Open http://localhost:3000 in your browser to view the platform.
-
Admin Portal:
- Navigate to
/admin/dashboardto manage assessments, view AI-powered analytics, monitor user statistics, and configure timetables.
- Navigate to
-
Teacher Portal:
- Access
/teachers/dashboardfor lesson management and content creation. - Use the AI content generation features (e.g., in
/teachers/content) to dynamically generate summaries, explanations, and quizzes.
- Access
-
Student Portal:
- Visit
/students/lessonsto access interactive lessons. - Engage with the AI tutor on the
/students/tutorpage for real-time assistance. - Monitor individual progress through detailed dashboards and practice modules.
- Visit
-
Code Editor:
- The
src/components/lessons/CodeEditor.tsxcomponent integrates the Monaco Editor to provide an interactive coding environment. It supports dynamic compilation and test execution with options for AI-enhanced debugging recommendations.
- The
-
Content Generation:
- The platform uses AI services via the OpenAI package. Content generation endpoints (e.g.,
/api/content/generate) enable teachers to create lesson materials on the fly.
- The platform uses AI services via the OpenAI package. Content generation endpoints (e.g.,
-
Real-time Collaboration:
- Utilize Socket.io features for live interactions and collaborative editing in timetable management and group exercises.
-
Linting:
npm run lint
-
Testing:
(Include your testing commands here if applicable)
npm run test
-
Build the Application:
npm run build
-
Start the Application:
npm run start
Use the provided Dockerfile to containerize the application:
FROM node:20-alpine
WORKDIR /app
# Copy package files
COPY package.json .
COPY package-lock.json .
# Install dependencies
RUN npm install
# Copy project files
COPY . .
# Build the Next.js application
RUN npm run build
# Expose the port
EXPOSE 3000
# Start the application
CMD ["npm", "start"]Contributions are welcome! Follow these steps to get started:
- Fork the Repository
- Create a New Branch for your feature or bugfix:
git checkout -b feature/your-feature-name
- Commit Your Changes with detailed commit messages.
- Push Your Branch:
git push origin feature/your-feature-name
- Open a Pull Request for review.
For major changes, please open an issue first to discuss your ideas.
EduSync is licensed under the MIT License. See the LICENSE file for more details.
EduSync leverages the power of AI to reinvent educational experiences, making learning more dynamic, interactive, and personalized. Whether you're an educator looking to streamline content creation or a student seeking real-time assistance, EduSync offers the tools you need to succeed in the modern educational landscape.