MSEC Connect is a modern, full-stack web application designed for booking seminar halls, auditoriums, and event venues at Meenakshi Sundararajan Engineering College (MSEC). The platform provides an intuitive interface for students, faculty, and administrators to discover, explore, and book venues for various events and academic activities.
- Comprehensive Venue Listings: Browse through a curated collection of seminar halls and auditoriums
- 360° Virtual Tours: Explore venues with immersive "360° Explore" functionality
- High-Quality Images: View detailed photos of each venue
- Capacity Information: Check seating capacity and venue specifications
- Real-time Availability: Live booking status and availability checking
- Secure Login: JWT-based authentication system
- Role-Based Access Control: Different access levels for students, faculty, and administrators
- User Profile Management: Personalized user accounts with booking history
- Admin Dashboard: Administrative control for booking management
- Easy Booking Process: Streamlined venue reservation system
- Venue Calendar: Interactive availability calendar (react-big-calendar) per venue
- Calendar Export: One-click
.icsexport to Google Calendar / Outlook - Automated Scheduling: Cron-driven event reminders and notifications
- Booking History: Track past and upcoming reservations
- Admin Approval: Administrative oversight for booking approvals
- Event Management: Organize and manage various types of events
- Web Push Notifications: VAPID-based browser notifications for booking status and events
- Notification Center: In-app notification feed with per-user settings
- Responsive Design: Optimized for desktop, tablet, and mobile devices
- Netflix-Style Gradients: Cinematic visual effects and modern aesthetics
- Intuitive Navigation: User-friendly interface with smooth transitions
- Search Functionality: Quick venue search and filtering capabilities
- React 18: Modern component-based UI library
- Vite: Next-generation frontend tooling for fast development
- React Router: Client-side routing for single-page application
- Tailwind CSS: Utility-first CSS framework for responsive design
- Modern JavaScript (ES6+): Latest JavaScript features and syntax
- Node.js: Server-side JavaScript runtime
- Express.js: Fast, unopinionated web framework
- MongoDB: NoSQL database for flexible data storage
- MongoDB Atlas: Cloud database hosting
- CORS: Cross-origin resource sharing configuration
- ESBuild: Ultra-fast JavaScript bundler
- Hot Module Replacement: Real-time development updates
- Environment Variables: Secure configuration management
- react-big-calendar + ical-generator: Venue availability calendar and
.icsexport - node-cron: Automated event reminders and scheduled notifications
- jsonwebtoken + bcryptjs: Secure JWT authentication with hashed passwords
MSEC Connect/
├── Frontend (React + Vite) - Port 3000
│ ├── Components (Header, Navigation)
│ ├── Pages (Home, Login, Venues, Bookings)
│ ├── Routing (React Router)
│ └── Styling (Tailwind CSS)
│
├── Backend (Node.js + Express) - Port 3001
│ ├── API Routes (/api/auth, /api/venues, /api/bookings)
│ ├── Database Models (Users, Venues, Bookings)
│ ├── Authentication Middleware
│ └── CORS Configuration
│
└── Database (MongoDB Atlas)
├── Users Collection
├── Venues Collection
└── Bookings Collection
- Node.js (v16 or higher)
- npm or yarn package manager
- MongoDB Atlas account (or local MongoDB installation)
-
Clone the repository
git clone https://github.com/princekumar-dev/Connect.git cd Connect -
Install dependencies
npm install
-
Environment Configuration Create a
.envfile in the root directory:MONGODB_URI=your_mongodb_connection_string PORT=3001 JWT_SECRET=your_jwt_secret_key
-
Start the development servers
Backend Server (Port 3001):
node server.js
Frontend Development Server (Port 3000):
npm run dev
-
Access the application
- Frontend:
http://localhost:3000 - Backend API:
http://localhost:3001
- Frontend:
src/
├── components/
│ ├── Header.jsx # Navigation header with MSEC logo
│ ├── BottomNav.jsx # Mobile bottom navigation
│ ├── VenueCalendar.jsx # Availability calendar (react-big-calendar)
│ ├── CalendarExportModal.jsx # .ics export to Google/Outlook
│ ├── NotificationCenter.jsx # In-app notification feed
│ ├── NotificationSettings.jsx# Per-user notification preferences
│ ├── SearchBar.jsx · Skeleton.jsx · Modal.jsx · ErrorBoundary.jsx
│ └── TopLoadingBar.jsx · GlobalExecutionLoader.jsx
├── pages/
│ ├── Home.jsx # Landing page with hero section
│ ├── Login.jsx · SignUp.jsx # Authentication pages
│ ├── Venues.jsx # Venue listings and details
│ ├── Book.jsx · BookingStatus.jsx # Booking flow & live status
│ ├── Bookings.jsx # Booking management (Admin)
│ ├── Events.jsx # Event listings
│ ├── ManageUsers.jsx # Admin user management
│ ├── FAQ.jsx · Contact.jsx · PrivacyPolicy.jsx · TermsOfService.jsx
│ └── NotFound.jsx # 404 page
├── hooks/useForm.js # Form state & validation hook
├── utils/api.js # API client
├── App.jsx # Main application component
├── main.jsx # Application entry point
└── index.css · performance.css # Global & performance styles
api/
├── auth.js # Authentication routes
├── venues.js # Venue management routes
├── bookings.js # Booking system routes
└── events.js # Event management routes
automated-event-scheduler.js # node-cron scheduled reminders
generate-vapid-keys.js # Web-push key generator
lib/
└── mongo.js # MongoDB connection configuration
public/
├── images/
│ ├── mseclogo.png # MSEC official logo
│ ├── campus.jpeg # Campus background image
│ └── venue-*.jpg # Venue photographs
└── index.html # HTML template
- Browse available venues
- View venue details and images
- Submit booking requests
- Track booking status
- Access contact information
- All student permissions
- Priority booking access
- Extended booking durations
- Event organization tools
- All user permissions
- Approve/reject booking requests
- Manage venue information
- User account management
- System configuration access
- Booking analytics and reports
- Hero Section: Stunning campus background with Netflix-style gradients
- Search Bar: Quick venue search functionality
- Featured Venues: Highlighted venue recommendations
- Call-to-Action: Direct booking links
- Venue Grid: Organized display of all available venues
- 360° Explore Buttons: Virtual tour access
- Detailed Information: Capacity, amenities, and specifications
- High-Resolution Images: Professional venue photography
- Interactive Forms: User-friendly booking interface
- Real-time Validation: Instant form feedback
- Confirmation System: Email notifications and confirmations
- Status Tracking: Live booking status updates
- Secure Login: Protected user accounts
- Session Management: Persistent login sessions
- Role Detection: Automatic permission assignment
- Logout Functionality: Secure session termination
- Modern Aesthetics: Clean, contemporary interface design
- MSEC Branding: Official college colors and logo integration
- Responsive Layout: Seamless experience across all devices
- Accessibility: WCAG compliant design standards
- Intuitive Navigation: Clear, logical user flow
- Fast Performance: Optimized loading times
- Error Handling: Graceful error management
- Feedback Systems: Real-time user feedback
POST /api/auth/login- User authenticationPOST /api/auth/logout- Session terminationGET /api/auth/verify- Token validation
GET /api/venues- Retrieve all venuesGET /api/venues/:id- Get specific venue detailsPOST /api/venues- Create new venue (Admin only)PUT /api/venues/:id- Update venue information (Admin only)
GET /api/bookings- Retrieve user bookingsPOST /api/bookings- Create new bookingPUT /api/bookings/:id- Update booking statusDELETE /api/bookings/:id- Cancel booking
{
_id: ObjectId,
email: String,
password: String (hashed),
role: String (student/faculty/admin),
name: String,
department: String,
createdAt: Date
}{
_id: ObjectId,
name: String,
capacity: Number,
amenities: Array,
images: Array,
description: String,
availability: Boolean,
location: String
}{
_id: ObjectId,
userId: ObjectId,
venueId: ObjectId,
eventName: String,
startTime: Date,
endTime: Date,
status: String (pending/approved/rejected),
createdAt: Date
}- Frontend: Deploy to Vercel, Netlify, or similar platforms
- Backend: Deploy to Heroku, Railway, or cloud providers
- Database: MongoDB Atlas for production database
- CDN: Cloudinary or AWS S3 for image storage
NODE_ENV=production
MONGODB_URI=mongodb+srv://your-production-db
JWT_SECRET=your-secure-jwt-secret
FRONTEND_URL=https://your-domain.comWe welcome contributions to improve MSEC Connect! Please follow these guidelines:
- 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
This project is licensed under the MIT License - see the LICENSE file for details.
- Developer: Prince Kumar
- GitHub: @princekumar-dev
- Email: Contact through the application's contact page
- Mohamed Sathak Engineering College
- Website: https://msec.edu.in
- Location: Chennai, Tamil Nadu, India
- Mohamed Sathak Engineering College for institutional support
- React Community for the excellent framework
- Tailwind CSS for the utility-first CSS framework
- MongoDB for the flexible database solution
- Vite for the lightning-fast development experience
Built with ❤️ for the MSEC Community
MSEC Connect - Bridging Events with Perfect Venues
If you see an error like:
sh: line 1: vite: command not found
Error: Command "npm run build" exited with 127
This means the local vite binary isn't available in your environment. Fixes:
- Make sure devDependencies are installed locally (CI environments may run
npm install --productionby default which skips devDeps):
npm install
# or for clean CI installs
npm ci-
Use the packaged local vite executable (the scripts were updated to use
npm exec vitewhich uses the project-local binary when available). -
In CI, ensure you install devDependencies or explicitly run
npm ci --include=dev(or set NODE_ENV appropriately) soviteis present for the build step.
If you prefer installing vite globally (not recommended for CI reproducibility):
npm install -g vite