A full-stack web application for managing the UBC Mahjong Club, including player statistics, game tracking, leaderboards, and tournament management.
- Frontend: React, TypeScript, Vite, Material-UI
- Backend: Node.js, Express, TypeScript
- Database: MySQL with Prisma ORM
- Deployment: Nginx reverse proxy, systemd service
- Development Setup - Local development environment setup
- Deployment Guide - Production deployment instructions
- Development Guide - Additional development resources
See DEVELOPMENT.md for detailed local development setup instructions.
MJCWebsite/
├── frontend/ # React frontend application
├── backend/ # Node.js/Express backend API
│ ├── src/ # TypeScript source files
│ └── prisma/ # Database schema and migrations
├── config/ # Configuration files
│ ├── nginx/ # Nginx reverse proxy config
│ └── mjc-website.service # Systemd service file
├── scripts/ # Build and deployment scripts
│ ├── dev.sh # Development server launcher
│ ├── prod.sh # Production build script
│ ├── start.sh # Production server starter
│ └── deploy.sh # Automated deployment script
└── build/ # Production build output (gitignored)
./scripts/dev.sh # Start development server locally./scripts/prod.sh # Build for production
./scripts/start.sh # Start production server
./scripts/deploy.sh # Deploy to remote server- Create a feature branch from
main - Make your changes
- Test locally using
./scripts/dev.sh - Submit a pull request
This project is maintained by the UBC Mahjong Club.