video link https://drive.google.com/file/d/1pGJ7ASKh9eJAPlZrtrrb9rbyuCVlanBf/view?usp=sharing
A unified full-stack portal that centralizes campus events, club announcements, and faculty research publications into a stunning cyber-themed platform.
- 🎯 Unified Dashboard - All campus activities in one place
- 📅 Smart Calendar - Event scheduling with conflict detection
- 🔬 Research Discovery - Faculty publications from OpenAlex API
- 📧 Gmail Integration - Auto-categorize club emails with NLP
- 🎨 Cyber Theme - Stunning glassmorphism dark UI
- 🔐 Role-Based Access - User, Admin, SuperAdmin roles
- ⚡ Real-time Scraping - Auto-update every 6 hours
| Layer | Technology |
|---|---|
| Frontend | React 18 + Vite + Tailwind CSS + Lucide icons |
| Backend | Node.js + Express |
| Database | SQLite (zero config!) |
| Auth | JWT + bcryptjs |
| AI/NLP | Natural.js for email categorization |
- Node.js v18+
- npm or yarn
# Clone the repo
git clone https://github.com/yourusername/cerp.git
cd cerp
# Start backend (Terminal 1)
cd backend
npm install
npm run seed # Initialize database
npm run dev
# Start frontend (Terminal 2)
cd frontend
npm install
npm run dev🌐 Open http://localhost:3000 in your browser!
# Clone and configure
git clone https://github.com/yourusername/cerp.git
cd cerp
cp .env.example .env
# Edit .env with your values
# Run with Docker
docker-compose up --build🌐 Open http://localhost:3000
| Platform | Deploy |
|---|---|
| Railway | |
| Render |
👉 See DEPLOYMENT.md for detailed instructions.
| Role | Password | |
|---|---|---|
| Super Admin | superadmin@iitj.ac.in |
SuperAdmin@CERP2026 |
cerp/
├── backend/ # Express API server
│ ├── src/
│ │ ├── routes/ # API endpoints
│ │ ├── db/ # Database & migrations
│ │ ├── scraper/ # Research & club scrapers
│ │ └── server.js # Entry point
│ └── Dockerfile
├── frontend/ # React SPA
│ ├── src/
│ │ ├── pages/ # Page components
│ │ ├── components/ # Shared components
│ │ └── context/ # Auth context
│ └── Dockerfile
├── docker-compose.yml # Container orchestration
├── DEPLOYMENT.md # Deployment guide
└── README.md
| Role | Capabilities |
|---|---|
| user | View personalized events, research, and announcements based on selected preferences (clubs & domains). |
| club_admin | Has global view access to all content, but can only explicitly create, edit, and delete events/announcements for their assigned club. |
| admin | Has total, unrestricted global view and edit access for all content on the platform. |
| superadmin | All admin capabilities + access to User Management (promote/demote roles and assign clubs to club managers). |
Email: superadmin@iitj.ac.in
Password: SuperAdmin@123
Email: admin@iitj.ac.in
Password: Admin@123
Email: testuser@iitj.ac.in
Password: User@123
All club admins share the same password: ClubAdmin@123
codingclub_admin@iitj.ac.in(Coding Club)roboticsclub_admin@iitj.ac.in(Robotics Club)aimlclub_admin@iitj.ac.in(AI/ML Club)cybersecurityclub_admin@iitj.ac.in(Cybersecurity Club)entrepreneurshipcell_admin@iitj.ac.in(Entrepreneurship Cell)literaryclub_admin@iitj.ac.in(Literary Club)photographyclub_admin@iitj.ac.in(Photography Club)musicclub_admin@iitj.ac.in(Music Club)sportsclub_admin@iitj.ac.in(Sports Club)designclub_admin@iitj.ac.in(Design Club)
- Onboarding & Preferences — New users pick research domains & clubs on first login to tailor their feeds.
- Research Publications — Browse faculty publications, filtered by preferred domains.
- Club Announcements Feed — Stay updated on club news, filtered by your followed clubs.
- Interactive Calendar — Month/week/day/agenda views dynamically populated with event timings.
- Role-Isolated Admin Panel — A robust management panel that securely restricts creation capabilities based on user role.
- User Management — Superadmins can dynamically assign clubs to standard users using an intuitive dropdown UI.