A comprehensive MERN stack web application for managing academic records, portfolios, and accreditation workflows.
New to this project? Follow these steps:
-
Clone the repository
git clone <repository-url> cd ACADVault
-
Follow the setup guide: See SETUP.md for complete installation instructions
-
Quick start:
- Install Node.js, MongoDB, and npm
- Run
npm installin bothbackendandfrontenddirectories - Create
.envfiles from.env.exampletemplates - Start backend:
npm run dev(in backend folder) - Start frontend:
npm start(in frontend folder)
📖 Documentation:
- SETUP.md - Complete setup guide for new developers
- QUICK_START.md - Fast setup with troubleshooting
- PROJECT_SUMMARY.md - Comprehensive project overview
AcadVault is a complete academic record management platform serving five user roles (students, faculty, administration, organizers, and recruiters) with distinct dashboards and workflows.
- Students can post achievements (certificates, PDFs, images)
- Log internships, projects, and event participation
- Verified, searchable portfolio accessible to recruiters
- Automated portfolio PDF generation
- Faculty verification with digital signatures
- QR code generation for each verified activity
- Instant validation via QR scanning
- Secure on-the-spot portfolio access
- Student: Activity logging, portfolio management, analytics
- Faculty: Activity verification, digital signatures
- Admin: User management, report generation, institutional activities
- Organizer: Event creation and management
- Recruiter: Student search, portfolio viewing
- Automated NAAC/NBA report generation
- 6-month activity logs
- Customizable report criteria
- Department-wise analytics
- Node.js & Express.js - Server and API framework
- MongoDB & Mongoose - Database
- Firebase Admin - File storage
- JWT - Authentication
- QRCode - QR code generation
- PDFKit - PDF report generation
- React.js - UI framework
- React Router - Navigation
- TailwindCSS - Styling
- Chart.js - Analytics visualization
- Axios - HTTP client
- Lucide React - Icons
- Node.js (v16 or higher)
- MongoDB (v5 or higher)
- npm or yarn
- Firebase account (for file storage)
git clone <repository-url>
cd ACADVaultcd backend
npm install
# Create .env file
cp .env.example .env
# Configure environment variables in .env
# - MongoDB URI
# - JWT Secret
# - Firebase credentials
# - Email configuration (optional)
# Start backend server
npm run devThe backend will run on http://localhost:5000
cd frontend
npm install
# Create .env file
cp .env.example .env
# Configure environment variables
# - REACT_APP_API_URL=http://localhost:5000/api
# - Firebase configuration
# Start frontend
npm startThe frontend will run on http://localhost:3000
ACADVault/
├── backend/
│ ├── config/ # Configuration files
│ ├── controllers/ # Request handlers
│ ├── middleware/ # Custom middleware
│ ├── models/ # MongoDB models
│ ├── routes/ # API routes
│ ├── utils/ # Utility functions
│ └── server.js # Entry point
│
└── frontend/
├── public/ # Static files
└── src/
├── components/ # Reusable components
├── context/ # React context
├── pages/ # Page components
├── services/ # API services
└── App.js # Main app component
- Register and create profile
- Upload activities with documents
- Track verification status
- Build and customize portfolio
- View analytics and growth charts
- Download portfolio PDF
- QR code for portfolio sharing
- Review pending activity submissions
- Verify or reject activities
- Add verification notes
- Assign points to activities
- Digital signature on verified items
- Dashboard with system statistics
- User management (activate/deactivate)
- Generate accreditation reports
- Create institutional activities
- View comprehensive analytics
- Create and manage events
- Track event participants
- Issue certificates
- Event QR codes
- Attendance management
- Search students by skills, CGPA, department
- View verified portfolios
- Scan QR codes for quick access
- Save favorite candidates
POST /api/auth/register- Register userPOST /api/auth/login- LoginGET /api/auth/me- Get current user
GET /api/activities- Get all activitiesPOST /api/activities- Create activityGET /api/activities/my-activities- Get user's activitiesPUT /api/activities/:id- Update activityDELETE /api/activities/:id- Delete activity
GET /api/verification/pending- Get pending verificationsPUT /api/verification/:id/verify- Verify activityPUT /api/verification/:id/reject- Reject activityPOST /api/verification/scan- Scan QR code
GET /api/portfolio/my-portfolio- Get user portfolioPUT /api/portfolio/my-portfolio- Update portfolioPOST /api/portfolio/generate-pdf- Generate PDF
GET /api/events- Get all eventsPOST /api/events- Create eventPOST /api/events/:id/register- Register for event
POST /api/reports- Generate reportGET /api/reports- Get all reportsGET /api/reports/:id/download- Download report
- JWT-based authentication
- Password hashing with BCrypt
- Role-based access control (RBAC)
- Rate limiting
- Helmet security headers
- CORS configuration
- Input validation
- User - User accounts (all roles)
- Activity - Student activities
- Event - Institutional events
- Portfolio - Student portfolios
- Report - Generated reports
- InstitutionalActivity - Admin activities
- Landing page
- Login
- Register
- Public portfolio view
- Dashboard with statistics
- Activity form (create/edit)
- My activities (list/filter)
- Portfolio management
- Dashboard
- Verify activities
- Dashboard with system stats
- Reports generation
- User management
- Dashboard
- Event management
- Create event
- Dashboard
- Student search
- Portfolio viewer
- Register and complete profile
- Add activities with supporting documents
- Wait for faculty verification
- Build portfolio with verified activities
- Generate and download portfolio PDF
- Share QR code with recruiters
- Login to faculty dashboard
- View pending activity submissions
- Review documents and details
- Verify or reject with notes
- Assign points to verified activities
- Access system dashboard
- View comprehensive statistics
- Manage users and permissions
- Generate accreditation reports
- Create institutional activities
- Create new events
- Set registration deadlines
- Track participant registrations
- Mark attendance
- Generate event QR codes
- Search students by criteria
- View verified portfolios
- Scan QR codes for quick access
- Save potential candidates
- Deploy to Heroku, AWS, or DigitalOcean
- Set environment variables
- Configure MongoDB Atlas
- Set up Firebase Storage
- Build:
npm run build - Deploy to Netlify, Vercel, or AWS S3
- Configure environment variables
- Update API URL
- Fork the repository
- Create feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open Pull Request
PORT=5000
MONGODB_URI=your_mongodb_uri
JWT_SECRET=your_jwt_secret
JWT_EXPIRE=7d
FIREBASE_PROJECT_ID=your_firebase_project
FIREBASE_STORAGE_BUCKET=your_bucket
FRONTEND_URL=http://localhost:3000
REACT_APP_API_URL=http://localhost:5000/api
REACT_APP_FIREBASE_API_KEY=your_api_key
REACT_APP_FIREBASE_PROJECT_ID=your_project_id
This project is licensed under the ISC License.
- Development Team
- React.js team for the framework
- MongoDB for the database
- Firebase for file storage
- TailwindCSS for styling
- Chart.js for visualizations
For support, email support@acadvault.com or create an issue in the repository.
- AI-based activity categorization
- Blockchain verification
- Mobile app (React Native)
- Email notifications
- Advanced analytics dashboard
- Integration with learning management systems
- Multi-language support
- Real-time chat between recruiters and students
Built with ❤️ for academic excellence