Skip to content

Letsoperate/Tickify-Amin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tickify Admin Console

The backend server and admin dashboard for the Tickify campus event ticketing platform. Built with Java's built-in HTTP server — no external frameworks. Manages events, tickets, users, refunds, analytics, and data exports.


Features

Dashboard

  • Real-time statistics: total events, tickets sold, revenue, active users
  • Quick-glance overview of platform health

Event Management

  • Create, edit, and delete events
  • Set event details: title, date, time, venue, category, university, pricing
  • Mark events as student-only or open to all
  • Track sold vs available tickets per event

Ticket Management

  • View all tickets with search and filters
  • Track ticket status: valid, scanned, refunded
  • Per-event and per-user ticket views

User Management

  • View registered users with email, type (student/guest), and registration date
  • User activity tracking

Refund Management

  • Process and track ticket refunds
  • Refund history with timestamps and amounts

Activity Log

  • Chronological log of all platform activity
  • Event creation, ticket purchases, scans, refunds

Data Studio (Analytics & Export)

  • Overview Cards — net revenue, average ticket price, scan rate, refund rate
  • Sales Over Time — daily revenue and ticket count bar chart
  • Ticket Breakdown — student vs guest vs regular, scanned, refunded
  • Revenue by Event — horizontal bar chart of top-performing events
  • University Breakdown — ticket distribution by university/email domain
  • Event Performance Table — sell-through rate, scan rate, revenue per event
  • Data Export — download Events, Tickets, Users, Refunds, Activity as CSV or JSON
  • Full Report — comprehensive JSON export of all analytics and raw data

Settings

  • Change admin password
  • View storage type (Oracle DB or file-based fallback)

Tech Stack

Layer Technology
Backend Java (com.sun.net.httpserver)
Database Oracle Database (JDBC) with file-based fallback
Frontend HTML5, CSS3, Vanilla JS
Icons Font Awesome 6 (CDN)
Font Inter (Google Fonts)

No external Java dependencies (except optional Oracle JDBC driver).


Project Structure

admin-console/
├── src/
│   ├── TickifyServer.java    # HTTP server, API routes, static file serving
│   └── DataStore.java        # Data persistence (Oracle DB + file fallback)
├── public/                   # Admin frontend (served at /admin/)
│   ├── index.html            # Admin SPA
│   ├── css/
│   │   └── admin.css         # Admin styles (classic theme)
│   └── js/
│       ├── config.js         # API base URL configuration
│       └── admin.js          # Admin logic, charts, exports
├── data/                     # File-based storage (auto-created)
├── lib/                      # Place ojdbc8.jar here for Oracle DB
│   └── README.txt
├── compile.bat               # Compile (Windows)
├── compile.sh                # Compile (Linux/macOS)
├── run.bat                   # Start server (Windows)
├── run.sh                    # Start server (Linux/macOS)
└── README.md

Getting Started

Prerequisites

  • Java JDK 11+javac and java in PATH
  • Oracle JDBC Driver (optional) — place ojdbc8.jar in lib/ for Oracle DB support

Compile

# Windows
compile.bat

# Linux/macOS
chmod +x compile.sh && ./compile.sh

Run

# Windows
run.bat

# Linux/macOS
chmod +x run.sh && ./run.sh

The server starts on http://localhost:3000 and serves all three sites.

Command-Line Options

java TickifyServer [options]

Options:
  --port, -p <port>     Server port (default: 3000)
  --api-only            Only serve API, no static files
  --no-client           Don't serve client site
  --no-scanner          Don't serve scanner site
  --db-url <url>        Oracle JDBC URL (default: jdbc:oracle:thin:@localhost:1521:XE)
  --db-user <user>      Oracle DB username (default: system)
  --db-pass <pass>      Oracle DB password (default: system)
  --help, -h            Show help

Access URLs

Site URL
Admin Console http://localhost:3000/admin/
Client Site http://localhost:3000/client/
Security Scanner http://localhost:3000/scanner/

Default Credentials

Account Username Password
Admin admin admin123
Security security security123

Change the admin password in Admin Console → Settings.


API Endpoints

Authentication

Method Endpoint Description
POST /api/admin/login Admin login
POST /api/security/login Security staff login
POST /api/users/register Register new user
POST /api/users/login User login

Events

Method Endpoint Description
GET /api/events List all events
POST /api/events Create event (admin)
GET /api/events/:id Get event details
PUT /api/events/:id Update event (admin)
DELETE /api/events/:id Delete event (admin)

Tickets

Method Endpoint Description
POST /api/tickets/purchase Purchase a ticket
GET /api/tickets/all List all tickets (admin)
GET /api/tickets/event/:id Tickets for an event
GET /api/tickets/user/:email Tickets for a user
GET /api/tickets/verify/:code Verify a ticket
POST /api/tickets/scan/:code Mark ticket as scanned

Analytics

Method Endpoint Description
GET /api/analytics/overview Comprehensive stats overview
GET /api/analytics/revenue-by-event Revenue grouped by event
GET /api/analytics/sales-over-time Daily sales data
GET /api/analytics/ticket-breakdown Ticket type breakdown
GET /api/analytics/event-performance Per-event performance metrics
GET /api/analytics/university-breakdown Tickets by university domain

Data Export

Method Endpoint Description
GET /api/export/events?format=csv Export events (CSV or JSON)
GET /api/export/tickets?format=csv Export tickets (CSV or JSON)
GET /api/export/users?format=json Export users (CSV or JSON)
GET /api/export/refunds?format=csv Export refunds (CSV or JSON)
GET /api/export/activity?format=csv Export activity log (CSV/JSON)
GET /api/export/full-report Full analytics JSON report

Other

Method Endpoint Description
GET /api/stats Dashboard statistics
POST /api/refunds Request a ticket refund
GET /api/refunds List all refunds (admin)
GET /api/activity Activity log (admin)
POST /api/admin/change-password Change admin password

Database

Oracle Database (Primary)

The server connects to Oracle DB via JDBC. Place ojdbc8.jar in the lib/ folder:

lib/ojdbc8.jar

Default connection: jdbc:oracle:thin:@localhost:1521:XE (user: system, pass: system)

Override with CLI args: --db-url, --db-user, --db-pass

File-Based Fallback

If Oracle is unavailable, the server automatically falls back to file-based storage using Java serialization in the data/ directory. No configuration needed.


Deployment

For production deployment on an Oracle Linux VM with Apache2 reverse proxy:

# Quick deploy (on the VM)
scp -r Tickify/ user@vm-ip:/tmp/tickify-upload
ssh user@vm-ip "sudo bash /tmp/tickify-upload/deploy/setup-oracle-linux.sh"

See the full Deployment Guide for details.


Repository

This admin console is part of the Tickify platform and is also available as a standalone repo:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors