A modern, full-stack web application for managing freshers orientation events with real-time updates, admin dashboard, and comprehensive event management features.
π Documentation β’ π Quick Start β’ π Project Structure β’ π οΈ Tech Stack
- Event Management - Create, update, and manage freshers orientation events
- Admin Dashboard - Comprehensive admin panel for event and user management
- User Authentication - Secure JWT-based authentication with role-based access control
- File Upload Support - Seamless file upload capabilities with Multer
- Real-time Updates - Responsive frontend with React and Vite
- Modern UI - Beautiful, responsive design using Tailwind CSS
- API Analytics - Integrated Vercel Analytics for performance tracking
- Password hashing with bcryptjs
- JWT-based authentication
- CORS enabled
- Environment variable management
- Role-based access control (RBAC)
- Mobile-first approach
- Fully responsive UI components
- Progressive web app ready
- Node.js (v18.0 or higher)
- PostgreSQL (v12 or higher)
- npm or yarn package manager
git clone https://github.com/aritramukhopadhyay2004/freshers-website.git
cd freshers-websitecd frontend
npm install
npm run dev # Start development server
# or
npm run build # Build for productioncd ../backend
npm install
# Create a .env file
echo "DATABASE_URL=postgresql://user:password@localhost:5432/freshers_db" > .env
echo "JWT_SECRET=your_secret_key_here" >> .env
echo "PORT=5000" >> .env
npm run dev # Start development server with nodemon
# or
npm start # Start production server# Create admin user
cd backend
npm run create-admin
# Seed sample data
npm run seed-samplefreshers-website/
βββ π¦ backend/
β βββ π routes/
β β βββ admin.js # Admin endpoints
β β βββ auth.js # Authentication endpoints
β β βββ public.js # Public/General endpoints
β βββ π middleware/ # Authentication & validation middleware
β βββ π models/ # Sequelize database models
β βββ π migrations/ # Database migrations
β βββ π scripts/ # Utility scripts
β βββ π instance/ # Database instance config
β βββ app.js # Express server entry point
β βββ package.json
β
βββ π¦ frontend/
β βββ π src/
β βββ π admin/ # Admin dashboard components
β βββ π components/ # Reusable React components
β βββ π pages/ # Page components
β βββ π assets/ # Images, icons, styles
β βββ π config/ # Configuration files
β βββ App.jsx
β βββ main.jsx
β
βββ package.json # Root dependencies (if any)
βββ package-lock.json
βββ README.md # This file
βββ .gitignore
| Technology | Version | Purpose |
|---|---|---|
| React | ^19.1.1 | UI library |
| Vite | ^7.1.2 | Build tool & dev server |
| React Router | ^7.8.2 | Client-side routing |
| Tailwind CSS | ^3.4.13 | Styling & responsive design |
| ESLint | ^9.33.0 | Code quality |
| PostCSS | ^8.5.6 | CSS transformation |
| Vercel Analytics | ^1.4.1 | Performance tracking |
| Technology | Version | Purpose |
|---|---|---|
| Express.js | ^4.18.2 | Web framework |
| PostgreSQL | (via Sequelize) | Database |
| Sequelize | ^6.32.1 | ORM |
| JWT | ^9.0.2 | Authentication |
| bcryptjs | ^2.4.3 | Password hashing |
| Multer | ^1.4.5 | File uploads |
| CORS | ^2.8.5 | Cross-origin requests |
| Nodemon | ^3.0.1 | Dev auto-reload |
| dotenv | ^16.3.1 | Environment variables |
POST /login- User loginPOST /register- User registrationPOST /logout- User logoutPOST /refresh- Refresh JWT token
GET /events- Get all public eventsGET /events/:id- Get event detailsGET /about- Get event information
POST /events- Create new eventPUT /events/:id- Update eventDELETE /events/:id- Delete eventGET /dashboard- Admin dashboard statsGET /users- Manage usersPOST /uploads- Handle file uploads
# Database Configuration
DATABASE_URL=postgresql://user:password@localhost:5432/freshers_db
# JWT Configuration
JWT_SECRET=your_super_secret_jwt_key_here
JWT_EXPIRY=7d
# Server Configuration
PORT=5000
NODE_ENV=development
# CORS
CORS_ORIGIN=http://localhost:5173VITE_API_URL=http://localhost:5000/api# Terminal 1 - Backend
cd backend
npm run dev
# Terminal 2 - Frontend
cd frontend
npm run devFrontend will run at: http://localhost:5173
Backend API will run at: http://localhost:5000
# Frontend
cd frontend
npm run build
npm run preview
# Backend
cd backend
npm start- Admin dashboard UI polish and analytics enhancements
- Rich text editor for event descriptions
- Media upload with progress tracking and moderation
- Push notifications and RSVP integration
- Internationalization (i18n) support
- Accessibility audit and WCAG compliance
- Email notifications system
- Event calendar integration
- QR code generation for events
- Real-time participant count updates
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Use conventional commits for clear history:
feat:New featurefix:Bug fixdocs:Documentation changesstyle:Code style changesrefactor:Code refactoringtest:Test additions/changeschore:Dependency/config changes
Arpan Pramanik (@arpanpramanik2003)
Full-stack development, backend architecture, DevOps infrastructure, and system administration
Aritra Mukhopadhyay (@aritramukhopadhyay2004)
User interface design, user experience optimization, and project operations
Security is a top priority. Please follow these guidelines:
- DO NOT create public issues for security vulnerabilities
- Report privately via GitHub Security Advisory
- Include steps to reproduce and potential impact
- Allow reasonable time for a fix before disclosure
- Never commit secrets or API keys to the repository
- Use
.envfiles for sensitive configuration (included in.gitignore) - Rotate keys and tokens regularly
- Enforce least privilege on database and API access
- Keep dependencies updated (
npm audit,npm update) - Use HTTPS in production
- Validate and sanitize all user inputs
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: Contact the team directly
This project is licensed under the MIT License - see the LICENSE file for details.
- β You can use this code commercially
- β You can modify the code
- β You can distribute the code
β οΈ You must include the license and copyright notice- β The code is provided "as-is" without warranty
- ABHIGRAHA 2K25 organizing committee
- All contributors and volunteers who made this project possible
- Open source community for amazing tools and libraries
- React, Express.js, PostgreSQL, Tailwind CSS communities
Built with β€οΈ for ABHIGRAHA 2K25