Skip to content

Devendra2610/AI-Academic-Project-Platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Acad AI ProjectHub

An AI-powered academic project management platform that streamlines collaboration between students, team leaders, and faculty members.

About the Project

Acad AI ProjectHub is a comprehensive web application designed to revolutionize academic project management. It solves the common challenges faced by students and faculty in managing group projects, tracking progress, and ensuring effective collaboration. The platform leverages Google's Gemini AI to provide intelligent task planning, automated milestone generation, smart reminders, and detailed progress analytics.

The system addresses key pain points in academic project management:

  • Fragmented Communication: Centralized chat and file sharing within project contexts
  • Poor Task Management: AI-driven task breakdown and assignment with progress tracking
  • Lack of Faculty Oversight: Real-time project monitoring and evaluation tools for faculty
  • Manual Progress Reporting: Automated PDF report generation with charts and insights
  • Inefficient Planning: AI-powered project planning with itinerary-style guidance

Built With

  • Backend Framework: Node.js / Express.js
  • Database: MongoDB with Mongoose ODM
  • Authentication: JWT (JSON Web Tokens) with bcryptjs
  • AI Integration: Google Gemini AI (gemini-1.5-flash-latest)
  • File Handling: Express-fileupload
  • PDF Generation: html-pdf
  • Frontend: Vanilla JavaScript, HTML5, CSS3
  • Charts & Visualization: Chart.js
  • UI Framework: Material Icons, Inter Font
  • Task Scheduling: node-cron
  • Validation: express-validator

Key Features

πŸ€– AI-Powered Project Management

  • Intelligent Task Planning: AI generates detailed project itineraries with task breakdowns and timelines
  • Auto Milestone Planning: Automatic milestone generation based on project complexity and deadlines
  • Smart Reminders: Context-aware, prioritized reminders for students based on task urgency and deadlines
  • Productivity Insights: AI analysis of team performance with personalized suggestions

πŸ‘₯ Multi-Role Collaboration

  • Student Dashboard: Project overview, task management, and AI assistance
  • Team Leader Controls: Task assignment, project completion authority, and team coordination
  • Faculty Oversight: Project monitoring, evaluation tools, and progress analytics

πŸ“Š Advanced Analytics & Reporting

  • Real-time Progress Tracking: Visual donut charts showing completion rates and task status
  • Automated PDF Reports: Weekly/monthly reports with charts, risk assessment, and AI summaries
  • Productivity Metrics: Team performance analysis with actionable insights

πŸ’¬ Communication & File Management

  • Project-based Chat: Real-time messaging within project contexts
  • File Upload & Sharing: Version-controlled file management with download capabilities
  • Faculty Suggestions: Direct feedback system from faculty to student teams

πŸ” Security & Authentication

  • Role-based Access Control: Student, Team Leader, and Faculty permissions
  • JWT Authentication: Secure token-based authentication
  • Project Authorization: Granular permissions for project access and modifications

Getting Started

Prerequisites

Before running this project, ensure you have the following installed:

  • Node.js (v16 or higher)
  • MongoDB (v4.4 or higher)
  • npm (comes with Node.js)

Check your versions:

node -v
npm -v
mongod --version

Installation

  1. Clone the repository:
git clone https://github.com/your_username/acad-ai-projecthub.git
cd acad-ai-projecthub
  1. Install dependencies:
npm install
  1. Environment Configuration:

Create a .env file in the root directory:

cp .env.example .env

Fill in the following environment variables in your .env file:

# Database Configuration
MONGO_URI=mongodb://localhost:27017/acad_ai_projecthub

# JWT Secret (generate a strong random string)
JWT_SECRET=your_super_secret_jwt_key_here

# Google Gemini AI API Key (get from Google AI Studio)
GEMINI_API_KEY=your_gemini_api_key_here

# Server Configuration
PORT=5000

Environment Variables Explained:

  • MONGO_URI: MongoDB connection string for your database
  • JWT_SECRET: Secret key for signing JWT tokens (use a strong, random string)
  • GEMINI_API_KEY: API key from Google AI Studio for AI features
  • PORT: Port number for the server (default: 5000)

How to Run the Project

  1. Start MongoDB:
# On Windows
net start MongoDB

# On macOS/Linux
sudo systemctl start mongod
# or
mongod
  1. Start the application:
npm start
  1. Access the application: Open your browser and navigate to http://localhost:5000

You should see the Acad AI ProjectHub interface with login/register options.

Detailed File Structure

acad-ai-projecthub/
β”œβ”€β”€ app.js                          # Main server entry point
β”œβ”€β”€ package.json                    # Project dependencies and scripts
β”œβ”€β”€ .env                           # Environment variables (create this)
β”œβ”€β”€ config/
β”‚   └── db.js                      # MongoDB connection configuration
β”œβ”€β”€ middleware/
β”‚   β”œβ”€β”€ auth.js                    # JWT authentication middleware
β”‚   └── error.js                   # Global error handling middleware
β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ User.js                    # User schema (student, faculty, team_leader)
β”‚   β”œβ”€β”€ Project.js                 # Project schema with AI plan details
β”‚   β”œβ”€β”€ Task.js                    # Task schema with assignment and status
β”‚   β”œβ”€β”€ ChatMessage.js             # Chat message schema
β”‚   └── File.js                    # File upload schema
β”œβ”€β”€ routes/
β”‚   β”œβ”€β”€ auth.js                    # Authentication routes (login/register)
β”‚   β”œβ”€β”€ dashboard.js               # Dashboard data endpoints
β”‚   β”œβ”€β”€ projects.js                # Project CRUD and AI planning
β”‚   β”œβ”€β”€ tasks.js                   # Task management endpoints
β”‚   β”œβ”€β”€ files.js                   # File upload/download endpoints
β”‚   β”œβ”€β”€ chat.js                    # Real-time chat endpoints
β”‚   β”œβ”€β”€ analytics.js               # Productivity insights and analytics
β”‚   β”œβ”€β”€ reports.js                 # PDF report generation
β”‚   β”œβ”€β”€ feedback.js                # Faculty feedback system
β”‚   └── reminders.js               # Smart reminder generation
β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ index.html                 # Main HTML file with all views
β”‚   β”œβ”€β”€ css/
β”‚   β”‚   └── style.css              # Application styling
β”‚   └── js/
β”‚       └── main.js                # Frontend JavaScript logic
β”œβ”€β”€ uploads/                       # File upload directory
β”œβ”€β”€ utils/
β”‚   β”œβ”€β”€ cron-jobs.js               # Scheduled tasks and notifications
└── daigram/                       # Project documentation and diagrams

Key File Explanations:

  • app.js: Main server file that sets up Express, middleware, routes, and starts the server
  • models/: Mongoose schemas defining the database structure for users, projects, tasks, etc.
  • routes/: API endpoint definitions organized by functionality
  • public/: Frontend files served as static content
  • middleware/: Custom middleware for authentication and error handling
  • utils/: Utility functions for cron jobs and external integrations

API Endpoints

Authentication

  • POST /api/auth/register - Register a new user
  • POST /api/auth/login - User login

Projects

  • GET /api/projects - Get all projects for authenticated user
  • POST /api/projects - Create a new project
  • GET /api/projects/:id - Get project by ID
  • PUT /api/projects/:id - Update project (role-based permissions)
  • DELETE /api/projects/:id - Delete project (owner only)
  • POST /api/projects/join - Join an existing project
  • POST /api/projects/ai-plan - Generate AI task plan
  • PUT /api/projects/approve-plan/:projectId - Approve AI plan (team leader only)
  • POST /api/projects/auto-milestones - Generate auto milestones
  • PUT /api/projects/assign-faculty/:projectId - Assign faculty to project

Tasks

  • GET /api/tasks/project/:projectId - Get tasks for a project
  • POST /api/tasks - Create a new task
  • PUT /api/tasks/:id - Update task status
  • PUT /api/tasks/:id/submit - Submit task completion

Files

  • POST /api/files/upload/:projectId - Upload file to project
  • GET /api/files/project/:projectId - Get files for project
  • GET /api/files/download/:fileId - Download file

Chat

  • GET /api/chat/projects/:projectId - Get chat messages
  • POST /api/chat/projects/:projectId - Send chat message

Analytics & Reports

  • GET /api/analytics/productivity/:projectId - Get productivity insights
  • GET /api/reports/generate/:projectId - Generate PDF report
  • POST /api/reminders/generate - Generate smart reminders

Faculty Features

  • POST /api/projects/:projectId/faculty-suggestions - Add faculty suggestion
  • GET /api/projects/:projectId/faculty-suggestions - Get faculty suggestions
  • PUT /api/projects/evaluate/:projectId - Evaluate project (faculty only)

User Roles & Permissions

Student

  • Create and join projects
  • View assigned tasks and project details
  • Use AI planning features
  • Upload files and participate in chat
  • Submit task completions

Team Leader

  • All student permissions
  • Assign tasks to team members
  • Approve/reject AI-generated plans
  • Mark projects as completed
  • Manage team coordination

Faculty

  • View all assigned projects
  • Monitor project progress with analytics
  • Provide feedback and suggestions
  • Generate and download reports
  • Evaluate and grade projects
  • Mark projects as completed

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the ISC License.

Support

For support and questions, please open an issue in the GitHub repository or contact the development team.


Built with ❀️ for academic excellence and collaborative learning

About

Acad AI ProjectHub is an AI-powered project management platform for students and faculty that automates task planning, tracks progress, generates reports, and centralizes collaboration. It enhances productivity, reduces coordination effort, and helps faculty monitor academic projects efficiently.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors