Skip to content
Dio
Back to projects

Full-Stack Web Development · /book-it-quick

Book-it-quick

Enterprise-Grade Personal Bookkeeping System with High-Precision Ledger

A full-stack, enterprise-grade personal bookkeeping and financial analytics platform developed during an intensive 2-week Software Production Internship at Shandong University of Science and Technology. Engineered from the ground up to eliminate floating-point arithmetic drift, the system integrates high-precision monetary ledgers, automated recurring billing, real-time analytics dashboards, and robust stateless authentication.

  • Spring Boot
  • Java 25
  • Vue 3
  • MyBatis
  • MySQL
  • Vite
  • Element Plus
  • ECharts
  • JWT & Spring Security
  • Pinia
  • i18n
Book-it-quick

Overview

A full-stack, enterprise-grade personal bookkeeping and financial analytics platform developed during an intensive 2-week Software Production Internship at Shandong University of Science and Technology. Engineered from the ground up to eliminate floating-point arithmetic drift, the system integrates high-precision monetary ledgers, automated recurring billing, real-time analytics dashboards, and robust stateless authentication.

Problem

Personal finance tools often suffer from floating-point calculation drift, rigid single-currency setups, and vulnerable session management. The challenge was building an end-to-end production-ready financial platform from scratch in just 10 working days, enforcing strict monetary precision (BigDecimal/DECIMAL(15,2)), enterprise auth hygiene, and automated background jobs.

Solution

High-Precision Financial Core: End-to-end BigDecimal in Java and DECIMAL(15,2) in MySQL, completely preventing floating-point calculation drift across all monetary operations. Enterprise Security Architecture: Stateless JWT authentication with rotating SHA-256 refresh tokens, auto-pruning token denylist, login rate limiting, and RBAC (USER/ADMIN). Automated Cron Operations: Spring @Scheduled background workers for daily currency exchange sync, recurring monthly bill generation, recycle bin pruning, and token cleanup. Interactive Dashboard & 5-Locale i18n: Vue 3 + Element Plus UI with Apache ECharts visualization, persistent dark mode, and runtime switching across 5 languages (English, Indonesian, Japanese, Simplified Chinese, Traditional Chinese).

Architecture & Core Systems

Layered Backend Architecture: Strict separation across Security Filters -> Controllers -> Services -> MyBatis Mappers -> MySQL with idempotent migration scripts. Multi-Currency Pipeline: Automated daily cron syncing live exchange rates via external API, dynamically recalculating dashboard totals across currencies. Soft-Delete & Audit Pattern: Non-destructive deletion flags with user-facing Recycle Bin recovery and automated retention cleanup.

Technical Implementation

Security Layer: BCrypt password hashing, HS256 JWT with RBAC claims, token rotation chaining via replaced_by, and denylist middleware. Query Optimization: Composite index on (user_id, bill_date) ensuring fast paginated transaction queries. Data Visualization: Real-time category distribution pie charts and 7-day cash-flow trends powered by Apache ECharts.

Challenges

Enforcing strict arithmetic precision across all API serialization, database queries, and client-side aggregations. Transitioning from Game Technology to full-stack enterprise Java/Vue architecture under an intensive 10-day deadline.

Results

Successfully engineered and delivered within the 10-day deadline at Shandong University of Science and Technology. Open-source on GitHub with comprehensive test endpoints and architecture documentation.

Lessons Learned

Financial software demands strict data integrity (BigDecimal over float/double) and atomic transactions. Core software engineering patterns—such as modular REST layering, stateless auth hygiene, and automated cron jobs—translate seamlessly across both game engines and web platforms.

Screenshots & Gameplay

Visual assets and in-game captures from Book-it-quick. Click any image to open the full-resolution preview.