Local Singles Date Night is a dating platform that flips the traditional model on its head: instead of paying for memberships or endless boosts, users pre-purchase a 1, 3, 5, or 10-dinner package from participating local restaurants and businesses.
For Singles:
- Curated first-date experiences with local restaurants
- No endless swiping or chat fatigue
- Budget clarity with prepaid packages
- Safety features and verified profiles
- Real-world meetings with compatible matches
For Restaurants:
- Predictable prepaid revenue
- Demand smoothing on lower-traffic nights
- Turnkey co-marketing opportunities
- Reduced no-shows with prepaid bookings
- Node.js 18+
- Docker and Docker Compose
- PostgreSQL (can use Docker)
-
Clone and setup:
git clone <repository-url> cd lsdn cp .env.example .env
-
Start development environment:
docker-compose up -d
-
Install dependencies:
cd backend && npm install cd ../frontend && npm install cd ../partner-portal && npm install
-
Run migrations:
cd backend npm run migrate -
Start development servers:
# Terminal 1: Backend cd backend && npm run dev # Terminal 2: Frontend cd frontend && npm run dev # Terminal 3: Partner Portal cd partner-portal && npm run dev
-
Access the applications:
- Frontend: http://localhost:3000
- Backend API: http://localhost:3001
- Partner Portal: http://localhost:3002
Backend:
- Node.js with Express.js
- TypeScript
- PostgreSQL with PostGIS
- Redis for caching
- Stripe for payments
- Cloudinary for image processing
Frontend:
- React 18 with TypeScript
- Vite for build tooling
- Tailwind CSS for styling
- React Query for state management
- React Hook Form for forms
Infrastructure:
- Docker for containerization
- Docker Compose for local development
- Render.com for easy deployment
- GitHub Actions for CI/CD
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β React App β β Restaurant β β Admin Portal β
β (Frontend) β β Partner Portalβ β (Management) β
βββββββββββ¬ββββββββ βββββββββββ¬ββββββββ βββββββββββ¬ββββββββ
β β β
ββββββββββββββββββββββββΌβββββββββββββββββββββββ
β
ββββββββββββββΌβββββββββββββ
β Express.js API β
β (Backend Server) β
ββββββββββββββ¬βββββββββββββ
β
ββββββββββββββΌβββββββββββββ
β PostgreSQL DB β
β (Primary Storage) β
ββββββββββββββ¬βββββββββββββ
β
ββββββββββββββΌβββββββββββββ
β Redis β
β (Caching/Session) β
βββββββββββββββββββββββββββ
β
ββββββββββββββ¬βββββββββββββ
β β β
βββββββββββΌβββ ββββββββΌβββββ βββββΌβββββββ
β Stripe β β Cloudinary β β SendGrid β
β Payments β β Images β β Email β
ββββββββββββββ βββββββββββββββ ββββββββββββ
- System Architecture - Detailed technical architecture
- Project Structure - Code organization and structure
- Deployment Guide - Step-by-step deployment instructions
- API Documentation - Complete API reference
- Simple Registration - Email, basic profile, and preferences
- Package Purchase - Buy 1, 3, 5, or 10 dinner packages
- Time Window Commitment - Select availability and experience types
- Availability-First Matching - See only compatible, available candidates
- Limited "Ask" Functionality - Throttled invitations to prevent spam
- Post-Booking Chat - Messaging only opens after booking confirmation
- Safety Features - ID verification, photo moderation, safe check-ins
- Easy Onboarding - Simple registration and setup
- Menu Management - Configure prix-fixe packages and pricing
- Slot Management - Set availability and capacity
- Voucher Redemption - QR code scanning at point of service
- Analytics Dashboard - Track bookings, revenue, and performance
- User Management - Approve, suspend, or remove users
- Partner Management - Approve and manage restaurant partners
- Content Moderation - Review and moderate user content
- Analytics - Monitor platform performance and metrics
Render.com (Recommended):
- One-click deployment for all services
- Free PostgreSQL and Redis
- Automatic SSL and custom domains
- Deployment Guide
Railway:
- Simple deployment with minimal configuration
- Built-in database and cache services
- Deployment Guide
Vercel + Railway (Alternative):
- Frontend on Vercel, backend on Railway
- Best of both platforms
- Deployment Guide
- Environment Variables - Set all required environment variables
- Database - PostgreSQL with PostGIS extension
- Cache - Redis instance
- Email - SMTP service (SendGrid, Mailgun, or Gmail)
- Images - Cloudinary account for image processing
- Payments - Stripe account for payment processing
cd backend
npm run test
npm run test:coveragecd frontend
npm run test
npm run test:coverage# Run all E2E tests
npm run test:e2e
# Run specific test suite
npm run test:e2e:frontend
npm run test:e2e:backend- ESLint for linting
- Prettier for formatting
- Husky for pre-commit hooks
- TypeScript for type safety
- Create feature branch from
main - Make changes with tests
- Commit with descriptive message
- Push to remote
- Create pull request
- Review and merge
- Create database migration
- Add API endpoints
- Update frontend components
- Write tests
- Update documentation
- Completed first dates per active user per month
- Restaurant partner NPS
- GMV and take rate
- Sign-up to package purchase conversion
- Ask to accept rate
- Show rate and no-show rate
- Slot utilization per venue
- Application logs
- Database performance
- API response times
- Error tracking
- User analytics
- JWT with refresh tokens
- Password hashing with bcrypt
- Email verification required
- Role-based access control
- API rate limiting
- Input validation and sanitization
- HTTPS only
- Encrypted database connections
- Secure file uploads
- Regular security audits
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Clone your fork
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- React - UI library
- Express.js - Web framework
- PostgreSQL - Database
- Stripe - Payment processing
- Cloudinary - Image processing
- Render.com - Easy deployment
For support and questions:
- Create an issue in this repository
- Join our community discussions
- Contact the development team
Local Singles Date Night - Making dating local, meaningful, and community-focused. β€οΈ