Advancing Technology for Humanity
π Live Site Β· π¦ Setup Guide Β· π‘ API Docs Β· π€ Contributing Β· π Issues
Official web platform of the IEEE Student Branch at Graphic Era Hill University, Dehradun. A production-grade full-stack application with a public events portal, animated landing page, and a JWT-secured admin dashboard for live content management.
| Layer | Technology |
|---|---|
| Frontend | React 19, Vite, Tailwind CSS v4, Framer Motion |
| Backend | Node.js, Express.js, Mongoose |
| Database | MongoDB Atlas |
| Storage | Cloudinary |
| Auth | JSON Web Tokens (JWT) |
| Testing | Vitest, React Testing Library |
| CI/CD | GitHub Actions |
| Deployment | Vercel (frontend) Β· Render (backend) |
Public Portal
- Animated landing page with faculty, events, and contact sections
- Events Archive β searchable, filterable, server-side paginated
- Responsive across all devices
Admin Dashboard
- Secure JWT login with auto-initialized admin account
- Full CRUD for Events and Team Members with Cloudinary image uploads
- Rate limiting via
express-rate-limit
ieee.web/
βββ frontend/ # React 19 application
β βββ src/
β βββ components/ # Navbar, ArchiveNavbar, Footer, animations
β βββ pages/ # Home, EventsArchive, Admin (protected)
β βββ test/ # Vitest unit tests
β
βββ backend/ # Node.js / Express REST API
β βββ models/ # Admin, Event, Team schemas
β βββ routes/ # api.js (public), auth.js (protected)
β βββ server.js # Entry point
β
βββ .github/workflows/ # CI pipeline
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/events |
Paginated events (?page, ?limit, ?search, ?category) |
| GET | /api/team |
All team members |
| POST | /api/contact |
Contact form submission |
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/auth/login |
Returns a JWT |
| POST/PUT/DELETE | /api/auth/events/:id |
Events CRUD |
| POST/PUT/DELETE | /api/auth/team/:id |
Team CRUD |
- Fork the repository
- Create a branch:
git checkout -b feat/your-feature - Commit using Conventional Commits
- Open a pull request against
main
All PRs must pass the CI pipeline. Branch protection is enforced on
main.
For local setup instructions, see SETUP.md.
MIT β see LICENSE for details.