Explore showcase

ACM Cinema

Scrum Master & Full-Stack · Aug 2025 – Present

Project1 / 13

Overview

At a glance

Layered full-stack cinema product spanning authentication, catalog search, seat orchestration, promotions, payments, orders, and admin workflows. I owned architecture direction, Spring Security integration, caching/pagination strategy, and frontend API boundaries while running Scrum across four sprints.

Strong class demo / top-tier feedback
Next.js 16Spring Boot 3.5PostgreSQLTanStack Query
Open live demoFollow Link
View GitHubView GitHub

Features

  • End-to-end booking lifecycle: discovery/search → seat selection → checkout/payment → order flows.
  • AuthN/AuthZ with role-based gates for user vs admin capabilities.
  • Pricing and promotions integrated into booking and payment paths.
  • Admin workflows for domain management and operational controls.
  • Reusable frontend domain hooks for movies, search, seats, payments, orders, and users.
  • UI polish via Framer Motion on promotional and background components.
  • Pagination and caching to keep data-heavy views responsive.

Implementation

  • Designed layered frontend/backend flow to preserve maintainability as feature scope expanded.
  • Implemented 80+ REST endpoints and 15 JPA entities over PostgreSQL (Neon), with relational modeling and migration iteration.
  • Integrated BCrypt for one-way password hashing and AES-based reversible encryption in sensitive payment-related flows (with later acknowledgment that this security model needed stricter server authority/tokenization strategy).
  • Applied facade-like client wrappers and aggregation strategies to standardize integrations across auth/movies/booking/promotions/payments/admin.
  • Implemented Virtual Proxy/lazy-loading style responses in targeted flows to reduce initial payload overhead.
  • Used React optimization primitives (`useMemo`, `useCallback`, `useRef`, context composition) to stabilize render behavior in complex pages.
  • Added Caffeine cache TTL strategy (10 min) and coordinated with query/refetch behavior to manage freshness/performance tradeoffs.
  • Added pagination and indexing-focused query improvements for frequently accessed records.
  • Established Jira process, team ticketing discipline, and dev-guide conventions for multi-sprint consistency.

Challenges

  • Requirements were strict and sometimes unclear; documentation overhead was large.
  • Architectural ambition introduced conflicting partial abstractions (multiple wrapper/facade variants with inconsistent semantics).
  • AI-assisted scaffolding accelerated development but often introduced inconsistent patterns and premature optimization debt.
  • AuthN/AuthZ was one of the hardest subsystems and created difficult debugging cycles when implementation shortcuts were taken.
  • Testing maturity lagged behind implementation pace (manual Postman/curl/print-debug heavy), causing regression risk.
  • Some server authority weaknesses around client-supplied context.
  • Difficulty with using Flyway for migration with Springboot/Neon.
  • Duplicated request logic across multiple client wrappers.
  • Oversized hooks (especially seat orchestration) as complexity hotspots.
  • Overlapping caching layers (manual cache + query cache + memoization) increasing stale-data invalidation complexity.

Reflection

  • This is still my hardest and most ambitious project by far.
  • The challenge wasn’t just feature count—it was balancing architecture quality, team coordination, docs/process requirements, and all the new patterns I wanted to try.
  • I learned that trying to implement every “industry-style” optimization at once can backfire if consistency and testing don’t keep up.
  • AI helped a lot for skeletons and refactor suggestions, but it also made it easier to accidentally introduce inconsistent code and “premature optimization” traps.
  • Biggest regret: we did not establish stronger automated testing/GitOps early enough.
  • Still, I’m proud of the grind: tons of self-learning in Spring/React/Postgres, many all-nighters, and real leadership reps through Jira and project structure.
  • We received strict demo feedback, fixed issues post-demo, and were told it was among the strongest projects in class. We were absolutely cheesing.

Video

ACM Cinema demo