Professional driving school management system with online payments, booking, and student management
π Live Website: https://thetruthdrivingschool.ca
# Start services
docker-compose up -d
# Check status
docker-compose ps
# View logs
docker-compose logs -f
# Start tunnel (for production)
./tunnel-manager.sh- Complete Guide - Setup, deployment, payment, and operations
- Security Guide - Security audit, fixes, and best practices
- Environment Setup
- Deployment
- Payment Configuration
- Price Management
- Tunnel Management
- Troubleshooting
- React - UI framework
- Stripe - Payment processing
- Framer Motion - Animations
- React Router - Navigation
- Axios - API calls
- Node.js + Express - API server
- PostgreSQL - Database
- Redis - Caching & brute force protection
- JWT - Authentication
- Sequelize - ORM
- Nodemailer - Email service
- Docker - Containerization
- Nginx - Reverse proxy
- Cloudflare Tunnel - Secure access
- Cloudflare - DNS & SSL
- β SQL Injection Protection - Fixed
- β XSS Protection - Fixed
- β Brute Force Protection - Redis-based
- β JWT Authentication - Enhanced
- β HTTPS Only - Via Cloudflare
- β Security Headers - Helmet
- β Input Validation - Comprehensive
Security Score: 72/100 (improved from 35/100)
- Provider: Stripe
- Mode: π΄ LIVE (Real payments enabled)
- Currency: CAD (Canadian Dollars)
- Packages: 6 active packages ($80 - $1000)
Pricing:
- 1 Hour Driving Lesson: $80
- 1.5 Hours Lessons: $110
- Package A (4 lessons): $420
- Package B (6 lessons): $610
- Package C (10 lessons): $1000
- Road Test: $170
- Environment: Production
- Domain: thetruthdrivingschool.ca
- SSL: Enabled via Cloudflare
- Services: All running
- Tunnel: Active
# Services
docker-compose ps
# Tunnel
./tunnel-manager.sh # Press 4 for status
# Website
curl https://thetruthdrivingschool.cadriving_school/
βββ backend/ # Node.js API server
β βββ src/
β β βββ controllers/
β β βββ models/
β β βββ routes/
β β βββ middleware/
β β βββ services/
β βββ tests/
βββ frontend/ # React application
β βββ public/
β βββ src/
β βββ components/
β βββ pages/
β βββ context/
βββ database/ # SQL schemas & seeds
βββ docs/ # Documentation
β βββ Guide.md # Complete guide
β βββ Security.md # Security guide
βββ nginx/ # Reverse proxy config
βββ tunnel-manager.sh # Cloudflare tunnel manager
Required in .env file:
DATABASE_URL- PostgreSQL connectionJWT_SECRET- JWT secret keySTRIPE_SECRET_KEY- Stripe secret (live)STRIPE_PUBLISHABLE_KEY- Stripe public (live)FRONTEND_URL- Production URLREDIS_HOST- Redis hostSESSION_SECRET- Session secret
# Install dependencies
cd backend && npm install
cd frontend && npm install
# Start development
docker-compose up -d# Build frontend
cd frontend && npm run build
# Start production
docker-compose -f docker-compose.prod.yml up -d
# Start tunnel
./tunnel-manager.sh# Connect to database
docker exec -it driving_school_db psql -U postgres -d driving_school
# View packages
docker exec -i driving_school_db psql -U postgres -d driving_school -c \
"SELECT name, price FROM lesson_packages;"
# Backup
docker exec -i driving_school_db pg_dump -U postgres driving_school > backup.sql# Interactive manager
./tunnel-manager.sh
# Quick status
./tunnel-manager.sh # Press 4
# View logs
./tunnel-manager.sh # Press 6- β Online registration & login
- β Browse & purchase lesson packages
- β Stripe payment integration
- β Book driving lessons
- β View lesson history & progress
- β Email receipts & confirmations
- β User management
- β Booking management
- β Payment tracking
- β Package management
- β Instructor management
- β Analytics & reporting
- β Responsive design
- β Real-time updates
- β Secure authentication
- β Payment processing
- β Email notifications
- β Database backups
- β Error monitoring
- Website: https://thetruthdrivingschool.ca
- Admin: https://thetruthdrivingschool.ca/admin
- API: https://thetruthdrivingschool.ca/api
- Stripe Dashboard: https://dashboard.stripe.com
- Cloudflare Dashboard: https://dash.cloudflare.com
- Complete Guide: docs/Guide.md
- Security Guide: docs/Security.md
- API Docs: docs/api/README.md
- Main Guide: docs/Guide.md
- Security: docs/Security.md
- Troubleshooting: docs/Guide.md#faq--troubleshooting
# Check logs
docker-compose logs backend --tail=50
# Check tunnel
./tunnel-manager.sh # Press 4
# Check database
docker exec -i driving_school_db psql -U postgres -d driving_school -c "SELECT 1;"- Development: β Complete
- Production: β Live
- Payments: π΄ Live Mode (Real money)
- Security: π‘ B- (72/100)
- Documentation: β Complete
Private - The Truth Driving School
| Task | Command |
|---|---|
| Start all services | docker-compose up -d |
| Stop all services | docker-compose down |
| View logs | docker-compose logs -f |
| Start tunnel | ./tunnel-manager.sh β Press 1 |
| Check status | ./tunnel-manager.sh β Press 4 |
| Update prices | See Price Management |
| Security audit | See Security Guide |
| Deploy | See Deployment |
Built with β€οΈ for The Truth Driving School
Last Updated: October 9, 2025