Nexus Events is a full-stack, industry-standard event management and booking platform. It features a premium, responsive frontend built with Vanilla HTML/CSS/JS and a robust RESTful API backend built with Flask, SQLAlchemy, and JWT authentication.
- Premium UI/UX: Dark theme with glassmorphism effects, CSS grid layouts, smooth transitions, and responsive design.
- Event Catalog: Browse upcoming events with real-time search and category filtering.
- Authentication: Secure user registration and login using JWT (JSON Web Tokens).
- Booking System: Select ticket quantities, view dynamic availability, and book tickets.
- Dev-Mode Checkout: Fully functional local development mode that simulates Stripe checkout without requiring API keys.
- User Dashboard: View purchased tickets with beautiful, interactive ticket stubs (complete with mock QR codes).
- Admin Dashboard: Dedicated admin panel to create, edit, and delete events, as well as view all platform bookings and revenue statistics.
- Toast Notifications: Custom non-blocking alert system for user feedback.
- Skeleton Loaders: Shimmering placeholders during data fetches to improve perceived performance.
Frontend:
- HTML5 / CSS3 (CSS Variables, Flexbox, Grid)
- Vanilla JavaScript (ES6+, Fetch API)
- No external CSS/JS frameworks required
Backend:
- Python 3
- Flask (REST API routing)
- Flask-SQLAlchemy (ORM & SQLite Database)
- Flask-JWT-Extended (Authentication)
- Stripe Python SDK (Payment processing)
- Python 3.8+
- A modern web browser
- A local web server (like VS Code Live Server or Python's
http.server) to serve the frontend files.
-
Navigate to the backend directory:
cd backend -
(Optional but recommended) Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows use: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Environment Variables: Copy the provided example file to create your own configuration.
cp .env.example .env
Note: For local development, the default values in
.env.example(or even without a.envfile) will enable a "Dev Mode" that bypasses actual Stripe API calls so you can test the booking flow immediately. -
Seed the Database: Populate the SQLite database with initial events and users.
python seed.py
-
Start the Flask Server:
python app.py
The backend API will run at
http://127.0.0.1:5000.
The frontend consists of static files that need to be served over HTTP (not the file:// protocol) due to CORS and module requirements.
-
Navigate to the project root (where
index.htmlis located). -
Start a local static server. Using Python:
python -m http.server 5500
Or use the VS Code "Live Server" extension.
-
Open the app: Navigate your browser to
http://127.0.0.1:5500.
The seed.py script automatically creates two accounts you can use to test the application:
| Role | Password | Access | |
|---|---|---|---|
| Admin | admin@nexus.com |
password123 |
Can access Admin Dashboard, create/delete events |
| User | jane@example.com |
password123 |
Standard user, can book tickets |
To enable real payments:
- Obtain your API keys from the Stripe Dashboard.
- Edit your
backend/.envfile and replace the mock key with your real Test Secret Key (sk_test_...). - The application will automatically detect the valid key format and route checkouts through Stripe's hosted payment pages.
MIT License