This repository has been archived on 2025-06-18. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
casino/frontend
Renovate Bot 3044ff5cb9
All checks were successful
CI / Get Changed Files (pull_request) Successful in 12s
Label PRs based on size / Check PR size (pull_request) Successful in 28s
Claude PR Review / claude-code (pull_request) Successful in 39s
CI / oxlint (pull_request) Successful in 47s
CI / prettier (pull_request) Successful in 54s
CI / eslint (pull_request) Successful in 1m3s
Pull Request Labeler / labeler (pull_request_target) Successful in 37s
CI / test-build (pull_request) Successful in 1m0s
CI / Backend Tests (pull_request) Has been skipped
CI / Checkstyle Main (pull_request) Has been skipped
CI / Docker backend validation (pull_request) Has been skipped
CI / Docker frontend validation (pull_request) Successful in 33s
CI / Playwright (pull_request) Successful in 3m56s
chore(deps): update devdependencies (non-major)
2025-06-11 11:02:55 +00:00
..
.docker fix: Fix frontend build bc apparently they changed the node version 2025-06-01 11:09:07 +02:00
e2e fix: Remove constructor injection 2025-06-10 13:15:10 +02:00
public fix: Make user not able to enter too much money 2025-05-21 11:03:52 +02:00
src fix: Remove constructor injection 2025-06-10 13:15:10 +02:00
.dockerignore feat(docker): add Docker configuration for frontend app 2025-04-24 14:23:17 +02:00
.editorconfig first 2024-09-11 10:40:00 +02:00
.gitignore chore: Add some tests 2025-06-05 13:16:53 +02:00
.postcssrc.json feat: add TailwindCSS and PostCSS configuration (!6) 2025-02-05 10:26:15 +00:00
.prettierignore chore(setup): Add and configure prettier (!4) 2025-02-05 10:01:05 +00:00
.prettierrc chore(setup): Add and configure prettier (!4) 2025-02-05 10:01:05 +00:00
angular.json feat: adjust icons 2025-06-04 12:15:07 +02:00
bun.lock chore(deps): update devdependencies (non-major) 2025-06-11 11:02:55 +00:00
eslint.config.js style: Configure and run eslint 2025-02-13 10:58:13 +01:00
package.json chore(deps): update devdependencies (non-major) 2025-06-11 11:02:55 +00:00
playwright.config.ts chore: Add some tests 2025-06-05 13:16:53 +02:00
README.md chore: Update some README's 2025-06-04 09:53:29 +02:00
tsconfig.app.json first 2024-09-11 10:40:00 +02:00
tsconfig.json style(tsconfig): update path mappings to array syntax 2025-04-02 10:12:29 +02:00
tsconfig.spec.json first 2024-09-11 10:40:00 +02:00

Casino Gaming Platform - Frontend

A modern Angular 20 casino gaming platform featuring multiple games including Blackjack, Coinflip, Dice, Slots, and Lootboxes. Built with Angular 20, TailwindCSS 4, and powered by Bun for fast development.

🎮 Features

  • Multiple Games: Blackjack, Coinflip, Dice, Slots, Lootboxes
  • User Authentication: OAuth2, email verification, password recovery
  • Real-time Gaming: Interactive game mechanics with animations
  • Payment Integration: Stripe integration for deposits
  • Responsive Design: Mobile-first design with TailwindCSS
  • Audio Experience: Game sounds and audio feedback
  • Transaction History: Complete betting and transaction tracking

🚀 Getting Started

Prerequisites

  • Bun (recommended) or Node.js 18+
  • Angular CLI 20+

Installation

# Install dependencies
bun install

# Start development server
bun run start

The app will be available at http://localhost:4200

📋 Commands

Development

  • Start Dev Server: bun run start - Starts dev server with proxy configuration
  • Build: bun run build - Production build
  • Watch Build: bun run watch - Development build with file watching

Code Quality

  • Format: bun run format - Format code with Prettier
  • Format Check: bun run format:check - Check code formatting
  • Lint: bun run lint - Run ESLint
  • OxLint: bun run oxlint - Run OxLint with strict warnings

Testing

  • Test All: bun run test - Run all tests with Karma/Jasmine
  • Test Single File: bunx @angular/cli test --include=path/to/test.spec.ts

🛠️ Technology Stack

Core

  • Angular 20: Latest Angular framework with standalone components
  • TypeScript 5.8: Strongly typed JavaScript
  • RxJS 7.8: Reactive programming for HTTP and state management

Styling & UI

  • TailwindCSS 4: Utility-first CSS framework
  • PostCSS: CSS processing and optimization
  • FontAwesome: Icon library with Angular integration

Animation & Interaction

  • GSAP: High-performance animations
  • CountUp.js: Number animation effects
  • Custom Audio Service: Game sound effects and feedback

Development Tools

  • Bun: Fast JavaScript runtime and package manager
  • ESLint + Angular ESLint: Code linting with Angular-specific rules
  • OxLint: Fast Rust-based linter
  • Prettier: Code formatting
  • Karma + Jasmine: Testing framework

Payment & APIs

  • Stripe: Payment processing integration
  • Custom HTTP Interceptors: API communication and error handling

🏗️ Architecture

Project Structure

src/
├── app/
│   ├── feature/          # Feature modules
│   │   ├── auth/         # Authentication (login, register, OAuth2)
│   │   ├── game/         # Game modules (blackjack, coinflip, dice, slots)
│   │   ├── lootboxes/    # Lootbox system
│   │   └── deposit/      # Payment and deposits
│   ├── model/            # Data models and interfaces
│   ├── service/          # Core services (auth, user, transaction)
│   └── shared/           # Shared components, directives, services
├── environments/         # Environment configurations
└── public/              # Static assets (images, sounds)

Key Components

  • Game Components: Modular game implementations with services
  • Shared Components: Reusable UI components (navbar, footer, modals)
  • Services: Business logic and API communication
  • Guards: Route protection and authentication
  • Interceptors: HTTP request/response handling

Style Guide

Color Palette

Primary Colors

  • Deep Blue: #0a1219 (background)
  • Deep Blue Light: #121e27 (secondary background)
  • Deep Blue Contrast: #1a2835 (cards, elements)

Accent Colors

  • Emerald: #10b981 (primary buttons)
  • Emerald Dark: #059669 (button hover)
  • Emerald Light: #34d399 (highlights)

Text Colors

  • Primary Text: #ffffff (white)
  • Secondary Text: #94a3b8 (light gray)
  • Tertiary Text: #64748b (darker gray)

Additional Accents

  • Yellow: #fbbf24
  • Red: #ef4444
  • Purple: #8b5cf6

Typography

Font Sizes

  • Extra Small: Text-xs (footer disclaimers)
  • Small: Text-sm (navigation links, footer links)
  • Base: Text-base (general text)
  • Large: Text-lg (section headings)
  • Extra Large: Text-xl (stat numbers, game headings)
  • Display: Text-4xl/5xl/7xl (welcome bonus text)

Font Weights

  • Normal: General text
  • Medium: Labels
  • Semibold: Navigation brand
  • Bold: Headings, stats
  • Extrabold: Welcome bonus text

Components

Buttons

  • Primary: Emerald background with hover state
  • Secondary: Deep blue light background with hover state
  • All buttons have active scale effect (95%)
  • Transition duration: 200-300ms

Cards

  • Background: Deep blue contrast
  • Rounded corners (lg)
  • Shadow effects with hover transition
  • Consistent padding (p-4)

Navigation

  • Desktop: Horizontal links with hover effects
  • Mobile: Collapsible menu with toggle
  • Links have color and background transitions

Modals

  • Backdrop blur with dark overlay
  • Card-style container with emerald focus rings
  • Consistent form styling with transitions

Forms

Inputs

  • Dark background with border
  • Focus states with emerald accent
  • Consistent padding and rounded corners
  • Clear label positioning

Layout

Grid System

  • Mobile-first responsive grid
  • Breakpoints: sm, md, lg
  • Grid columns: 1 (mobile), 2 (tablet), 3 (desktop)
  • Consistent gap spacing (gap-4)

Spacing

  • Consistent margin/padding scale
  • Mobile-responsive spacing adjustments

Animation

  • Transitions: 200-500ms duration
  • Hover/active state animations
  • Scale transformations (95-110%)
  • Opacity transitions for navigation elements

Components & Classes

Common UI Elements

  • .card - Base card container
  • .button-primary - Main CTA buttons
  • .button-secondary - Alternative action buttons
  • .section-heading - Section titles
  • .nav-link - Navigation links
  • .modal-card - Modal container

Game Elements

  • .game-card-content - Game information container
  • .game-heading-sm - Small game titles
  • .game-heading-xl - Large game titles
  • .game-text - Game descriptions
  • .slider-container - Game carousel container

Responsive Design

  • Mobile-first approach
  • Tailwind breakpoints (sm, md, lg)
  • Different layouts based on screen size
  • Responsive text sizing and spacing
  • Hidden/visible elements using responsive classes

CSS Framework

  • Tailwind CSS for utility classes
  • Custom utility classes with @apply directive
  • CSS variables for theming
  • Component-based styling approach