TicketPro is a web-based event management and ticketing platform that allows event organizers to create, promote, and manage events, while giving attendees a streamlined experience for discovering events, purchasing tickets, and attending them.
Supported event types include concerts, webinars, conferences, workshops, and community gatherings.
nextjs-dashboard/— Next.js (App Router) web applicationtm_createdb.sql— database schema / table creation scriptinsert.sql— seed data scripttm_dropdb.sql— (optional) database cleanup scripteventmanager.drawio.pdf— ERD / system diagram
- Frontend / Web: Next.js + TypeScript + Tailwind CSS
- Package Manager: pnpm
- Database: MySQL
- Security: password hashing via
bcrypt(see Troubleshooting if native binding fails)
- Node.js: v20.18.0
- npm: 10.8.2
- pnpm: installed globally
- MySQL: recommended 8.x (Workbench or CLI)
Run these commands from the repository root (same folder as
tm_createdb.sql).
CREATE DATABASE ticket_pro;mysql -u root -p ticket_pro < tm_createdb.sqlmysql -u root -p ticket_pro < insert.sqlmysql -u root -p < tm_dropdb.sqlCreate nextjs-dashboard/.env and add:
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=your_password_here
DB_NAME=ticket_pro✅ Recommended: commit a .env.example (without secrets) and keep .env in .gitignore.
Move into the app folder after cloning:
cd nextjs-dashboardInstall pnpm (if needed):
npm install -g pnpmInstall dependencies:
pnpm ipnpm devOpen:
Build:
pnpm buildStart:
pnpm startThis project includes a helper that updates event images (e.g., imageForEvents()).
- Open:
nextjs-dashboard/app/page.tsx - Temporarily uncomment the
useEffectthat callsimageForEvents() - Run dev server:
pnpm dev- Confirm logs like:
Successfully updated image for eventId: ...
Comment the useEffect back so it doesn't run every refresh.
Tip: Later improvement would be moving this into a dedicated script (e.g.,
pnpm seed:images) to avoid editing page code.
- User Management
- Secure sign-up and login
- Email validation
- Password hashing
- Event Management
- Create, edit, and delete events
- Dynamic querying and filters for event lists
- Ticket Purchasing
- Frontend payment form
- Backend integration for ticket purchasing
- Auto-increment seat number assignment
- Homepage & Dashboard
- Popular, registered, upcoming, and in-progress events
- Side navigation for fast navigation
- Profile Pages
- Display user info and registered events