Features • Demo • Quick Start • Documentation • Contributing
Cassanova Casino is a cutting-edge, full-stack online casino platform designed as a demonstration of modern web development practices. Built with the latest technologies including Next.js 15, React 19, and MongoDB, this project showcases a complete casino website implementation with a professional UI/UX, robust backend API, and comprehensive feature set.
⚠️ Important Note: This is a demonstration project for educational purposes. For production deployment, ensure proper gaming licenses, payment integrations, and regulatory compliance.
- Modern UI/UX: Beautiful, responsive design built with Tailwind CSS
- Dynamic Game Lobby: Browse, filter, and search through game collections
- Game Detail Pages: Complete game information with RTP, volatility, and demo options
- Live Jackpot Ticker: Real-time progressive jackpot displays
- Promotional System: Eye-catching promotion cards with detailed promotion pages
- User Dashboard: Complete account overview with balance, VIP status, and transaction history
- Responsive Design: Seamless experience across desktop, tablet, and mobile
- Complete Auth System: Login and registration pages with validation
- JWT Authentication: Secure user authentication and session management
- Email Verification: Complete email verification flow with resend functionality
- Password Reset: Forgot password and reset password functionality
- Two-Factor Authentication: TOTP-based 2FA with QR code setup and backup codes
- Protected Routes: Automatic redirects for unauthorized access
- Password Security: bcryptjs password hashing
- Session Persistence: Secure token storage with automatic renewal
- KYC Verification: Document upload interface with status tracking
- Multi-Payment Deposit: Support for cards, crypto, bank transfers, and e-wallets
- Secure Withdrawals: KYC-verified withdrawals with balance validation
- Transaction History: Complete audit trail of all transactions with filtering and search
- Transaction Filtering: Filter by type (deposit, withdrawal, bet, win) and status
- Transaction Search: Search transactions by description, amount, or type
- Pagination: Easy navigation through transaction history
- Balance Tracking: Real-time balance updates
- Deposit Limits: Configurable limits per payment method
- Quick Actions: Fast deposit/withdrawal from dashboard
- User Management: Registration, profiles, and account settings
- Game Catalog: Comprehensive game database with metadata and categories
- Favorite Games: Add/remove games to favorites with dedicated favorites page
- Favorite Management: View and manage all favorite games in one place
- Promotions Engine: Flexible promotion and bonus system with eligibility rules
- VIP System: Multi-tier loyalty program (Bronze, Silver, Gold, Platinum)
- Responsible Gaming: Deposit limits, loss limits, and self-exclusion options
- Framework: Next.js 15 with App Router
- UI Library: React 19
- Styling: Tailwind CSS 4
- Language: TypeScript 5
- Features: Server-Side Rendering (SSR), Hot Reloading
- Runtime: Node.js 20+
- Framework: Express 5
- Database: MongoDB 8 with Mongoose
- Authentication: JSON Web Tokens (JWT)
- Security: bcryptjs, CORS
- Language: TypeScript 5
- Node.js 20 or higher
- MongoDB (local installation or MongoDB Atlas)
- npm or yarn package manager
- Clone the repository
git clone https://github.com/GizzZmo/Cassanova.git
cd Cassanova- Setup Backend
cd backend
npm install
cp .env.example .env
# Edit .env with your MongoDB URI and JWT secret
npm run dev- Setup Frontend (in a new terminal)
cd frontend
npm install
npm run dev- Access the Application
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
For detailed setup instructions, see QUICKSTART.md.
The homepage features a modern hero banner with welcome bonuses, game lobby preview, live jackpot ticker, and promotional cards.
Complete login and registration system with form validation, secure password handling, and terms acceptance.
Fully functional dashboard with account overview, balance display, VIP level tracking, recent transactions, and quick action buttons for deposits/withdrawals.
- Game Lobby: Browse through categorized game collections with tabs for Popular, New Games, and Jackpots
- Game Details: Individual game pages with full information, statistics (RTP, volatility), features, and demo/play options
- Deposit: Secure deposit page with multiple payment methods (card, crypto, bank transfer, e-wallet) and quick amount selection
- Withdraw: Withdrawal page with KYC verification, balance validation, and multiple withdrawal options
- Promotions Listing: Browse all available promotions and bonuses
- Promotion Details: Individual promotion pages with complete terms, eligibility requirements, and claim buttons
- Quick Start Guide - Get up and running in minutes
- Project Documentation - Comprehensive technical documentation
- Implementation Summary - Details of recently implemented features
- API Reference - Complete API endpoint documentation
- Architecture - System architecture and design patterns
- Deployment Guide - Production deployment instructions
- Security Policy - Security best practices and vulnerability reporting
Cassanova/
├── frontend/ # Next.js frontend application
│ ├── app/ # Next.js 15 app directory
│ │ ├── layout.tsx # Root layout with AuthProvider
│ │ ├── page.tsx # Homepage
│ │ ├── login/ # Login page
│ │ ├── register/ # Registration page
│ │ ├── dashboard/ # User dashboard (protected)
│ │ ├── deposit/ # Deposit page (protected)
│ │ ├── withdraw/ # Withdrawal page (protected)
│ │ ├── games/ # Game pages
│ │ │ └── [slug]/ # Dynamic game detail pages
│ │ ├── promotions/ # Promotion pages
│ │ │ └── [slug]/ # Dynamic promotion detail pages
│ │ ├── demo/ # Demo page
│ │ └── globals.css # Global styles
│ ├── components/ # React components
│ │ ├── layout/ # Header, Footer
│ │ └── home/ # Homepage sections
│ ├── lib/ # Utility libraries
│ │ ├── api.ts # API client
│ │ └── auth-context.tsx # Authentication context
│ ├── types/ # TypeScript type definitions
│ └── public/ # Static assets
│
├── backend/ # Express backend API
│ └── src/
│ ├── server.ts # Express server
│ ├── models/ # Mongoose models
│ │ ├── User.ts
│ │ ├── Game.ts
│ │ ├── Promotion.ts
│ │ └── Transaction.ts
│ ├── routes/ # API routes
│ │ ├── auth.routes.ts
│ │ ├── game.routes.ts
│ │ ├── promotion.routes.ts
│ │ ├── transaction.routes.ts
│ │ └── user.routes.ts
│ ├── controllers/ # Request handlers
│ │ ├── auth.controller.ts
│ │ ├── game.controller.ts
│ │ ├── promotion.controller.ts
│ │ ├── transaction.controller.ts
│ │ └── user.controller.ts
│ └── middleware/ # Authentication middleware
│
└── docs/ # Documentation
├── API_REFERENCE.md
├── ARCHITECTURE.md
├── DEPLOYMENT.md
├── SECURITY.md
└── CONTRIBUTING.md
POST /api/auth/register- Register new userPOST /api/auth/login- User login (supports 2FA)GET /api/auth/verify/:token- Email verificationPOST /api/auth/resend-verification- Resend verification emailPOST /api/auth/forgot-password- Request password resetPOST /api/auth/reset-password- Reset password with tokenPOST /api/auth/2fa/setup- Setup two-factor authenticationPOST /api/auth/2fa/verify- Verify and enable 2FAPOST /api/auth/2fa/disable- Disable two-factor authenticationGET /api/auth/2fa/status- Get 2FA status
GET /api/games- List all games (with filters)GET /api/games/jackpots- Get jackpot gamesGET /api/games/:slug- Get game detailsPOST /api/games- Create game (admin, requires authentication)
GET /api/users/profile- Get user profilePUT /api/users/profile- Update profilePUT /api/users/responsible-gaming- Update gaming limitsPOST /api/users/favorites- Toggle favorite gamePOST /api/users/kyc/upload- Upload KYC documentGET /api/users/kyc/documents- Get KYC documents
GET /api/promotions- List all promotionsGET /api/promotions/:slug- Get promotion detailsPOST /api/promotions- Create promotion (admin, requires authentication)
GET /api/transactions- Get transaction historyPOST /api/transactions/deposit- Create depositPOST /api/transactions/withdrawal- Create withdrawal
For complete API documentation, see API_REFERENCE.md.
/- Homepage with game lobby and promotions/login- User login page/register- User registration page/forgot-password- Request password reset link/reset-password- Reset password with token/verify-email- Email verification page/games/[slug]- Game detail pages (dynamic)/promotions/[slug]- Promotion detail pages (dynamic)/demo- Demo page
/dashboard- User dashboard with account overview, transaction filtering, and search/favorites- View and manage favorite games/kyc- KYC document upload and verification/settings- Security settings and 2FA management/deposit- Deposit funds with multiple payment methods/withdraw- Withdraw funds with KYC verification
# Backend tests
cd backend
npm test
# Frontend tests
cd frontend
npm testSecurity is a top priority. We implement:
- ✅ JWT-based authentication
- ✅ Password hashing with bcryptjs
- ✅ CORS protection
- ✅ Input validation and sanitization
- ✅ Secure transaction handling
- ✅ KYC verification for withdrawals
For security concerns, please see our Security Policy.
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- User authentication pages (login, register)
- Game detail pages with full information
- User dashboard implementation
- Deposit/withdrawal pages with multiple payment methods
- Promotion detail pages
- Authentication context and session management
- Protected routes with automatic redirects
- Form validation and error handling
- Responsive design for all pages
- Transaction history display
- KYC verification checks
- Email verification system (backend API)
- Favorite games management (backend API)
- Responsible gaming settings (backend API)
- KYC document storage (database model)
- JWT authentication with token validation
- Transaction processing (deposit/withdrawal)
- Email verification UI flow (frontend integration)
- Password reset functionality
- Transaction filtering and search
- Favorite games management UI (frontend)
- KYC document upload interface (frontend)
- Two-factor authentication
- Real payment provider integration
- Live chat support system
- Admin dashboard for management
- Advanced game filtering and search
- Real-time balance updates via WebSocket
- Push notifications for promotions
- Real game provider integration
- Live dealer games
- Progressive jackpot tracking system
- Multi-language support (i18n)
- Mobile app development (iOS/Android)
- Social features and tournaments
This project is licensed under the MIT License - see the LICENSE file for details.
Educational & Demonstration Purposes Only: This software is provided as-is for learning and demonstration. Production use requires proper gaming licenses, compliance with gambling regulations, and integration with licensed payment and gaming providers.
- GizzZmo - Initial work - GizzZmo
- Built with Next.js, React, and modern web technologies
- Inspired by industry-leading online casino platforms
- UI/UX design following best practices in gaming industry
- Issues: GitHub Issues
- Documentation: Project Docs
- Email: For private inquiries
⭐ Star this repository if you find it helpful!
Made with ❤️ by GizzZmo