A comprehensive web application designed to help students discover, organize, and attend events on campus. The system streamlines event management, improves student engagement, and provides valuable insights for both organizers and campus administration.
This platform enables students to browse events, save them to their personal calendar, claim free or paid tickets, and check in using QR codes. Organizers can create and manage events, track attendance, and access analytics through dashboards, while administrators moderate content and oversee organizations.
- Browse and search events with comprehensive filters
- Date range filtering
- Event category selection
- Organization-based filtering
- Interactive event listings with detailed information
- Save events to personal calendar
- Claim tickets (free or mock paid)
- Receive digital tickets with unique QR codes
- View ticket history and upcoming events
- Comprehensive event setup with:
- Event title and description
- Date and time scheduling
- Location specification
- Ticket capacity management
- Ticket type configuration (free or paid)
- Dedicated dashboard per event featuring:
- Tickets issued statistics
- Attendance rates tracking
- Remaining capacity monitoring
- Export attendee lists in CSV format
- Integrated QR scanner for ticket validation
- Event modification and cancellation capabilities
- Organizer account approval system
- Event listing moderation for policy compliance
- Content management and quality control
- Global platform statistics:
- Total number of events
- Tickets issued across all events
- Participation trends and insights
- Organization management and oversight
- Role assignment and permissions
- User account administration
- Interactive map interface showing nearby events
- Real estate website-style map visualization
- Location-based event recommendations
- Proximity-based event filtering
- Framework: React 19.1.1 with TypeScript
- Build Tool: Vite 7.1.2
- UI Library: Material-UI (MUI) 7.3.2
- Styling: Emotion (CSS-in-JS)
- Routing: React Router DOM 7.9.3
- HTTP Client: Axios 1.12.2
- Notifications: Notistack 3.0.2
- QR Code Generation: qrcode.react 4.2.0
- Framework: Spring Boot 3.5.5
- Language: Java 25
- Build Tool: Maven
- Database: SQLite 3.47.1.0 with Hibernate ORM
- Authentication: JWT (JSON Web Tokens) with Spring Security
- API: RESTful API with Spring Web
- Validation: Spring Boot Starter Validation
- SQLite: Lightweight, file-based relational database
- Schema Management: Python script for database initialization and seeding
- Java 25 or higher
- Python 3.x
- Node.js and npm
- Maven
-
Clone the repository
git clone <repository-url> cd linkt
-
Install frontend dependencies
cd frontend/my-react-app npm install cd ../..
-
Backend dependencies (Maven will handle this automatically)
Navigate to the database directory and run the Python script to create the SQLite database with seed data:
python3 backend/database/create_database.pyThis will:
- Create a new
linkt.dbfile in the database directory - Set up all required tables (user, event, ticket, saved_event)
- Populate the database with sample data including:
- 3 organizers (2 approved, 1 pending)
- 3 students
- 1 administrator
- 3 sample events
- Sample tickets and saved events
Create a .env file in the backend/springboot-app directory with your SendGrid API key for email functionality:
cd backend/springboot-app
cat > .env << EOF
# SendGrid Configuration
SENDGRID_API_KEY=your_sendgrid_api_key_here
EOFNote: The .env file is already included in .gitignore to keep your API key secure. Never commit this file to version control.
From the root directory:
cd backend/springboot-app
mvn spring-boot:runThe backend server will start on http://localhost:8080
In a new terminal, from the root directory:
cd frontend/my-react-app
npm run devThe frontend application will be available at http://localhost:5173 (or the next available port)
Open your browser and navigate to the frontend URL.
[Contribution guidelines to be added]
[License information to be added]
| Name | Student ID | Role | GitHub User Name |
|---|---|---|---|
| Thomas Ballard | 40263348 | Full-Stack | thomasballarddev |
| Levon Kadehjian | 40268535 | Full-Stack | Levon-Kadehjian |
| Darcy Loane-Billings | 40310186 | Full-Stack | DudeNamedDarcy |
| Peter Fitopoulos | 40316056 | Full-Stack | mvpete1 |
| Daniel Buta | 40300680 | Full-Stack | daniel-buta |
| Maximilian Ingram | 40329376 | Full-Stack | MaxIngram05 |
| Renaud Bernier | 40212192 | Scrum Master and Full-Stack | RenaudBernier |