UniEvent is a dual-interface event planning platform for universities. It gives admins a dashboard to schedule, confirm, and analyze events, while students get a separate portal to discover confirmed events, register, and track completed participation.
- Schedule new events with poster upload
- Save event data in MongoDB
- Review and confirm planned events
- Prevent venue and time-slot clashes
- View budget, participation, performance, and venue optimization insights
- Open a full event preview page from the event poster
- Login or sign up as a new student
- View only confirmed events
- Register for events with auto-filled student details
- See registered and completed events with posters
- Get reminder notifications for registered events 1 day before the event
- Frontend: HTML, CSS, Vanilla JavaScript
- Backend: Node.js, Express
- Database: MongoDB
- Hosting Target: Vercel-compatible Express API
- Node.js 18+ recommended
- npm
- MongoDB Atlas connection string
- A modern browser
- Git (optional, only needed if you are cloning the repo)
- Clone the repository:
git clone https://github.com/WebP-Project/University-Dashboard.git
cd University-Dashboard- Install dependencies:
npm install- Create your environment file:
cp .env.example .envSet:
MONGODB_URIMONGODB_DBAUTH_SECRET
- Start the server:
npm start.env is loaded automatically for local runs. Hosted environments such as Vercel should use their own configured project environment variables instead.
- Open the app in your browser:
- Login page:
http://localhost:3000/login.html - Student portal:
http://localhost:3000/client.html - Admin dashboard:
http://localhost:3000/admin/dashboard.html
- Email:
admin@college.edu - Password:
admin123
- Email:
student@college.edu - Password:
securePass1
You can also create a new student account from the Sign Up tab on the login page.
University-Dashboard/
├── api/
│ └── index.js
├── admin/
│ ├── css/
│ ├── js/
│ ├── dashboard.html
│ └── event-preview.html
├── data/
│ ├── events.json
│ ├── posters/
│ ├── registrations.json
│ └── users.json
├── lib/
│ └── db.js
├── public/
│ ├── css/
│ ├── js/
│ ├── client.html
│ ├── login.html
│ └── register.html
├── app.js
├── server.js
├── vercel.json
├── package.json
└── README.md
- MongoDB stores users, events, and registrations
- Existing
data/*.jsonfiles are used only as initial seed data when the database is empty - Poster files inside
data/posters/are still served as static assets
- Uploaded posters are served from
data/posters/ - Students only see events whose status is
Confirmed - Authentication uses a signed HTTP-only cookie
- Browser notifications depend on the user granting notification permission
- Push this repo to GitHub.
- Create a MongoDB Atlas database.
- In Vercel, import the repo.
- Add these environment variables in the Vercel project settings:
MONGODB_URIMONGODB_DBAUTH_SECRETNODE_ENV=production
- Deploy.
The app is configured so all routes are served through api/index.js on Vercel.
npm startStarts the Express server on port 3000.
- Email reminders for registered events
- Search, filters, and role-based analytics expansion