An AI-powered academic project management platform that streamlines collaboration between students, team leaders, and faculty members.
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
- 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
- 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
- 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
- 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
- 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
- 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
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- Clone the repository:
git clone https://github.com/your_username/acad-ai-projecthub.git
cd acad-ai-projecthub- Install dependencies:
npm install- Environment Configuration:
Create a .env file in the root directory:
cp .env.example .envFill 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 databaseJWT_SECRET: Secret key for signing JWT tokens (use a strong, random string)GEMINI_API_KEY: API key from Google AI Studio for AI featuresPORT: Port number for the server (default: 5000)
- Start MongoDB:
# On Windows
net start MongoDB
# On macOS/Linux
sudo systemctl start mongod
# or
mongod- Start the application:
npm start- Access the application:
Open your browser and navigate to
http://localhost:5000
You should see the Acad AI ProjectHub interface with login/register options.
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 servermodels/: Mongoose schemas defining the database structure for users, projects, tasks, etc.routes/: API endpoint definitions organized by functionalitypublic/: Frontend files served as static contentmiddleware/: Custom middleware for authentication and error handlingutils/: Utility functions for cron jobs and external integrations
- POST
/api/auth/register- Register a new user - POST
/api/auth/login- User login
- 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
- 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
- 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
- GET
/api/chat/projects/:projectId- Get chat messages - POST
/api/chat/projects/:projectId- Send chat message
- GET
/api/analytics/productivity/:projectId- Get productivity insights - GET
/api/reports/generate/:projectId- Generate PDF report - POST
/api/reminders/generate- Generate smart reminders
- 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)
- Create and join projects
- View assigned tasks and project details
- Use AI planning features
- Upload files and participate in chat
- Submit task completions
- All student permissions
- Assign tasks to team members
- Approve/reject AI-generated plans
- Mark projects as completed
- Manage team coordination
- 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
- 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
This project is licensed under the ISC License.
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