A comprehensive event management platform designed for campus communities, enabling students to discover, create, and participate in campus events seamlessly.
- Overview
- Features
- Tech Stack
- Project Structure
- Installation
- Usage
- API Endpoints
- Environment Variables
- Contributing
- License
CampusCrew is a full-stack web application that bridges the gap between event organizers and participants in campus environments. The platform provides an intuitive interface for creating, managing, and discovering events while incorporating features like payment processing, certificate generation, and intelligent event recommendations.
- User Authentication: Secure signup, login, and email verification
- Event Discovery: Browse upcoming campus events with filtering options
- Event Registration: Register for events with integrated payment processing (bKash)
- Dashboard: Personal dashboard to track joined events and activities
- Certificate Generation: Automated certificate generation for completed events
- Profile Management: Comprehensive user profile with customization options
- Recommendation System: Intelligent event suggestions based on user preferences
- Event Creation: Comprehensive event creation with rich details
- Event Management: Edit, update, and manage created events
- Attendee Tracking: Monitor event registrations and attendees
- Payment Integration: Secure payment processing for paid events
- Analytics: Track event performance and engagement
- Responsive Design: Mobile-first design approach
- Dark/Light Theme: Theme switching capability
- Email Notifications: Automated email system for updates
- Cloud Storage: Cloudinary integration for image management
- QR Code Generation: QR codes for event verification
- Password Recovery: Secure password reset functionality
- React 19.1.1 - Modern React with latest features
- Vite - Fast build tool and development server
- React Router DOM - Client-side routing
- Axios - HTTP client for API requests
- Bootstrap 5.3.7 - UI component framework
- React Icons - Icon library
- React Toastify - Toast notifications
- React DatePicker - Date selection component
- React Paginate - Pagination component
- Node.js - Runtime environment
- Express.js - Web application framework
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
- JWT - JSON Web Tokens for authentication
- bcrypt - Password hashing
- Nodemailer - Email service
- Multer - File upload handling
- Cloudinary - Cloud image and video management
- PDFKit - PDF generation for certificates
- QRCode - QR code generation
- SSLCommerz - Payment gateway integration
CampusCrew/
βββ backend/
β βββ middleware/
β β βββ bkashAuth.js # Payment authentication
β βββ models/
β β βββ EventModel.js # Event data schema
β β βββ RegistrationModel.js # Registration data schema
β β βββ UserModel.js # User data schema
β βββ Router/
β β βββ EventRoute.js # Event-related routes
β β βββ Recommendation.js # Recommendation system routes
β β βββ RegistrationRoute.js # Registration routes
β β βββ UserRoute.js # User authentication routes
β βββ utils/
β β βββ certificateGenerator.js # Certificate generation utility
β β βββ cloudinary.js # Cloud storage configuration
β β βββ multer.js # File upload configuration
β β βββ sendEmail.js # Email service utility
β βββ database.js # MongoDB connection
β βββ index.js # Server entry point
β βββ package.json
β
βββ frontend/
βββ src/
β βββ Components/
β β βββ Footer.jsx # Application footer
β β βββ Header.jsx # Navigation header
β β βββ HeroBanner.jsx # Landing page banner
β β βββ loader_login.jsx # Loading component
β βββ contexts/
β β βββ AuthContext.jsx # Authentication context
β β βββ ThemeContext.jsx # Theme management context
β βββ Pages/
β β βββ Home.jsx # Landing page
β β βββ Login.jsx # Authentication page
β β βββ Dashboard.jsx # User dashboard
β β βββ CreateEvent.jsx # Event creation form
β β βββ EventDetails.jsx # Event information page
β β βββ Profile.jsx # User profile management
β β βββ ... (other pages)
β βββ CSS/ # Styling files
β βββ assets/ # Static assets
β βββ data/ # FAQ and static data
β βββ utils/ # Utility functions
βββ index.html
βββ package.json
- Node.js (v16 or higher)
- MongoDB
- Git
-
Clone the repository
git clone https://github.com/AsifAvaas/CampusCrew.git cd CampusCrew/backend -
Install dependencies
npm install
-
Environment Configuration Create a
.envfile in the backend directory:PORT=8000 MONGODB_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret JWT_EXPIRES_IN=7d EMAIL_USER=your_email@gmail.com EMAIL_PASS=your_email_password CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name CLOUDINARY_API_KEY=your_cloudinary_api_key CLOUDINARY_API_SECRET=your_cloudinary_api_secret FRONTEND_URL=http://localhost:5173 BKASH_USERNAME=your_bkash_username BKASH_PASSWORD=your_bkash_password BKASH_APP_KEY=your_bkash_app_key BKASH_APP_SECRET=your_bkash_app_secret
-
Start the backend server
nodemon index.js
-
Navigate to frontend directory
cd ../frontend -
Install dependencies
npm install
-
Environment Configuration Create a
.envfile in the frontend directory:VITE_API_BASE_URL=http://localhost:8000
-
Start the development server
npm run dev
The application will be available at:
- Frontend:
http://localhost:3000 - Backend API:
http://localhost:8000
- Registration: Create an account with your email
- Verification: Verify your email address
- Browse Events: Explore upcoming campus events
- Register: Sign up for events that interest you
- Payment: Complete payment for paid events via bKash
- Certificates: Download certificates for completed events
- Admin Registration: Create an organizer account
- Event Creation: Create detailed event listings
- Management: Monitor registrations and manage events
- Analytics: Track event performance
POST /api/user/register- User registrationPOST /api/user/login- User loginPOST /api/user/verify-email- Email verificationPOST /api/user/forgot-password- Password reset requestPOST /api/user/reset-password- Password reset confirmation
GET /api/event/- Fetch all eventsPOST /api/event/create- Create new eventGET /api/event/:id- Get event detailsPUT /api/event/:id- Update eventDELETE /api/event/:id- Delete event
POST /api/registration/register- Register for eventGET /api/registration/user/:userId- Get user registrationsPOST /api/registration/payment- Process payment
GET /api/recommendation/:userId- Get personalized recommendations
| Variable | Description | Required |
|---|---|---|
PORT |
Server port number | Yes |
MONGODB_URI |
MongoDB connection string | Yes |
JWT_SECRET |
JWT signing secret | Yes |
JWT_EXPIRES_IN |
JWT expiration time | Yes |
EMAIL_USER |
Email service username | Yes |
EMAIL_PASS |
Email service password | Yes |
CLOUDINARY_CLOUD_NAME |
Cloudinary cloud name | Yes |
CLOUDINARY_API_KEY |
Cloudinary API key | Yes |
CLOUDINARY_API_SECRET |
Cloudinary API secret | Yes |
FRONTEND_URL |
Frontend application URL | Yes |
BKASH_USERNAME |
bKash payment username | Optional |
BKASH_PASSWORD |
bKash payment password | Optional |
BKASH_APP_KEY |
bKash application key | Optional |
BKASH_APP_SECRET |
bKash application secret | Optional |
| Variable | Description | Required |
|---|---|---|
VITE_API_BASE_URL |
Backend API base URL | Yes |
- Asif Avaas - asif13.aak@gmail.com
- Sanjida Amin - sanjidasunny25@gmail.com
- Tajuddin Ahmed - bijoy.ahmed12555@gmail.com
CampusCrew - Connecting Campus Communities Through Events πβ¨