Skip to content

Latest commit

Β 

History

90 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Corevent Desktop Application

πŸ“‹ Overview

Corevent Desktop adalah aplikasi manajemen acara kampus yang terintegrasi, dirancang untuk menyederhanakan seluruh siklus hidup pengelolaan acara dari persiapan hingga pasca-acara. Aplikasi ini dibangun menggunakan Java dengan framework Spring Boot dan JavaFX untuk antarmuka desktop yang modern dan responsif.

πŸš€ Tech Stack

Core Technologies

  • Java 17 - Bahasa pemrograman utama
  • Spring Boot 3.2 - Framework aplikasi dan dependency injection
  • JavaFX 21 - Framework UI untuk aplikasi desktop
  • Hibernate/JPA - Object-Relational Mapping

Database

  • H2 - Development database (file-based)
  • PostgreSQL - Production database dengan sinkronisasi server

Additional Libraries

  • Retrofit2 - REST API client
  • ZXing - QR Code generation dan scanning
  • Apache PDFBox - PDF generation untuk sertifikat
  • BCrypt - Password encryption
  • JWT - Token-based authentication
  • Flyway - Database migration tool

πŸ“ Project Structure

corevent-desktop/
β”œβ”€β”€ src/main/java/com/corevent/
β”‚   β”œβ”€β”€ entity/               # Domain entities (Event, Participant, Ticket, dll)
β”‚   β”œβ”€β”€ controller/           # Business logic controllers
β”‚   β”œβ”€β”€ boundary/            # JavaFX UI controllers
β”‚   β”œβ”€β”€ repository/          # Data access layer
β”‚   β”œβ”€β”€ service/             # Service layer
β”‚   β”œβ”€β”€ api/                 # REST API clients
β”‚   β”œβ”€β”€ security/            # Security utilities
β”‚   β”œβ”€β”€ config/              # Configuration classes
β”‚   └── util/                # Utility classes
β”œβ”€β”€ src/main/resources/
β”‚   β”œβ”€β”€ fxml/                # FXML view files
β”‚   β”œβ”€β”€ css/                 # Styling files
β”‚   β”œβ”€β”€ images/              # Icons & images
β”‚   β”œβ”€β”€ db/migration/        # Database migration scripts
β”‚   └── application.properties
└── src/test/                # Unit & integration tests

πŸ› οΈ Setup & Installation

Prerequisites

  • Java JDK 17 atau lebih tinggi
  • Maven 3.8+
  • PostgreSQL (untuk production)

Development Setup

  1. Clone repository
git clone https://github.com/billysams21/IF2050-2025-K1L-Corevent.git
cd Corevent
  1. Install dependencies
mvn clean install
  1. Run application (development mode)
mvn spring-boot:run

atau

mvn javafx:run

Database Access

H2 Console (Development)

  1. Start the application
  2. Open browser and navigate to: http://localhost:8888/h2-console
  3. Use these credentials:
    • JDBC URL: jdbc:h2:file:./corevent_db
    • Username: sa
    • Password: password

Building for Production

  1. Build executable JAR
mvn clean package -Pproduction
  1. Run JAR file
java -jar target/corevent-desktop-1.0.0-SNAPSHOT.jar

πŸ”‘ Key Features (MVP Phase)

Authentication & Account Management

  • βœ… Login dengan role Panitia dan Peserta
  • βœ… Offline authentication support
  • βœ… Session management
  • βœ… Remember me functionality

Core Features

  • βœ… Event Management (UC01, UC07)

    • Create new events
    • Update event schedule
    • Manage event details
  • βœ… Participant Management (UC08)

    • View participant list
    • Export participant data (CSV, Excel, PDF)
    • Real-time synchronization
  • βœ… Event Check-in (UC04)

    • QR code scanning
    • Offline validation
    • Attendance tracking
  • βœ… Evaluation Results (UC05)

    • View evaluation statistics
    • Export reports
    • Data visualization

πŸ” Security Features

  • BCrypt password hashing
  • AES-256 encryption untuk data sensitif
  • JWT token-based authentication
  • Offline mode dengan cached credentials

🌐 API Integration

Aplikasi desktop berkomunikasi dengan backend server melalui REST API:

  • Base URL: https://belum.ada
  • Authentication: Bearer token (JWT)
  • Automatic retry dengan exponential backoff
  • Offline mode fallback

API Endpoints

Events

  • GET /api/events - Get all events
  • GET /api/events/{id} - Get event by ID
  • POST /api/events - Create new event
  • PUT /api/events/{id} - Update event
  • DELETE /api/events/{id} - Delete event

Participants

  • GET /api/events/{id}/participants - Get event participants
  • POST /api/events/{id}/participants - Add participant
  • DELETE /api/events/{id}/participants/{participantId} - Remove participant

Attendance

  • POST /api/events/{id}/check-in - Check-in participant
  • GET /api/events/{id}/attendance - Get attendance list

πŸ“Š Database Schema

Main Entities

  • Event - Informasi acara
  • Participant - Data peserta
  • Ticket - Tiket dengan QR code
  • Payment - Transaksi pembayaran
  • Attendance - Kehadiran peserta
  • Evaluation - Evaluasi acara
  • Question/Answer - Q&A forum

πŸ§ͺ Testing

Run unit tests:

mvn test

Run integration tests:

mvn verify

πŸ“ Configuration

application.properties

# Profile: development atau production
spring.profiles.active=development

# Database
spring.datasource.url=jdbc:h2:file:./corevent_db
spring.jpa.hibernate.ddl-auto=validate

# API Configuration
api.base-url=
api.timeout=30

# Offline sync
offline.sync-interval=300000

πŸ” Troubleshooting

Common Issues

  1. Database Connection Issues

    • Check if H2 database files exist
    • Verify database credentials
    • Check if port 8888 is available
  2. Application Won't Start

    • Check Java version (must be 17+)
    • Verify all dependencies are installed
    • Check logs in logs/corevent.log
  3. UI Issues

    • Clear JavaFX cache
    • Check if JavaFX modules are properly loaded
    • Verify FXML files are in correct location

Logs

  • Application logs are stored in logs/corevent.log
  • Log level can be configured in application.properties
  • Use logging.level.com.corevent=DEBUG for detailed logs

πŸ“„ License

This project is proprietary software. All rights reserved.

πŸ‘₯ Team

πŸ‘₯ Team

  • Project Owner: Livia Arumsari
  • Lead Developer: Billy Samuel Setiawan (18222039)
  • UI/UX Designer: Dzulfaqor Ali Dipanegara (18222017)
  • Backend Developer: Benedicta Eryka Santosa (18222031)
  • Frontend Developer (JavaFX): Kezia Caren Cahyadi (18222041)
  • Database & API Integration Developer: Ananda Farhan Raihandra (18222084)
  • QA Engineer & DevOps: Dahayu Ramaniya Aurasindu (18222099)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages