OpenSpace is a comprehensive parking and valet management platform that connects customers, garage operators, managers, and valets through an intuitive digital ecosystem. Experience seamless parking reservations, real-time valet tracking, and efficient garage operations.
- Smart Booking System: Real-time garage availability and instant booking
- Valet Services: Request pickup/drop-off services with live tracking
- 3D Garage Visualization: Interactive 3D maps of parking facilities
- Payment Integration: Secure Stripe payments for all transactions
- Mobile-First Design: Responsive web application for all devices
- Multi-Garage Support: Manage multiple parking facilities
- Slot Management: Dynamic slot allocation and pricing
- Real-time Availability: Live updates on parking space status
- Verification System: Admin-approved garage listings
- Image Management: Photo galleries for each garage
- Role-Based Access: Separate interfaces for customers, managers, valets, and admins
- Authentication: Secure JWT-based authentication with NextAuth.js
- Profile Management: User profiles with preferences and history
- Company Structure: Hierarchical company and garage management
- Booking Timeline: Complete audit trail of all parking activities
- Valet Assignment: Automated and manual valet service coordination
- Review System: Customer feedback and rating system
- Reporting Dashboard: Comprehensive analytics for operators
OpenSpace Platform Features Overview
π OpenSpace Platform
βββ Customer Portal
β βββ Smart Booking System
β βββ 3D Garage Visualization
β βββ Payment Integration
β βββ Real-time Tracking
βββ Garage Management
β βββ Multi-Garage Support
β βββ Slot Management
β βββ Real-time Availability
β βββ Image Management
βββ Valet Services
β βββ Pickup/Drop-off
β βββ GPS Tracking
β βββ Service Coordination
β βββ Earnings Monitoring
βββ Admin Dashboard
βββ User Management
βββ Analytics
βββ Verification System
βββ Review System
OpenSpace follows a modern micro-frontend architecture with shared libraries and multiple specialized applications.
openspace/
βββ apps/
β βββ api/ # NestJS GraphQL API Backend
β βββ web/ # Customer Web Application (Port 3001)
β βββ web-admin/ # Admin Management Portal (Port 3004)
β βββ web-manager/ # Garage Manager Dashboard
β βββ web-valet/ # Valet Mobile Application
βββ libs/
β βββ 3d/ # Three.js 3D Visualization Library
β βββ forms/ # Shared Form Components & Validation
β βββ network/ # GraphQL Client & API Utilities
β βββ ui/ # Reusable UI Component Library
β βββ util/ # Utility Functions & Types
βββ tools/ # Development Tools & Scripts
βββββββββββββββββββ βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β Frontend Apps β β Shared Librariesβ β Backend API β βExternal Servicesβ
βββββββββββββββββββ€ βββββββββββββββββββ€ ββββββββββββββββββββ€ βββββββββββββββββββ€
β β’ web (Port 3001β β β’ ui (UI Comp.) β β β’ api (Port 3000)β β β’ PostgreSQL DB β
β Customer) β β β’ forms (Forms) β β NestJS GraphQL β β β’ Stripe Paymentβ
β β’ web-admin β β β’ network (GQL) β β β β β’ NextAuth Auth β
β (Port 3004) β β β’ 3d (Three.js) β β β β β’ Cloudinary Imgβ
β β’ web-manager β β β’ util (Utils) β β β βββββββββββββββββββ
β β’ web-valet β βββββββββββββββββββ ββββββββββββββββββββ β²
βββββββββββββββββββ β² β² β
β β β β
βββββββββββββββββββΌβββββββββββββββββββββββββΌββββββββββββββββββββββ
β β
ββββββββββββββββββββββββββ
- Framework: NestJS - Progressive Node.js framework
- API: GraphQL with Apollo Server
- Database: PostgreSQL with Prisma ORM
- Authentication: JWT with NextAuth.js
- Payments: Stripe integration
- Validation: class-validator
- Framework: Next.js 14 - React framework
- Styling: Tailwind CSS for responsive design
- State Management: React hooks and context
- 3D Graphics: Three.js for garage visualization
- Icons: Tabler Icons
- Monorepo: Nx workspace management
- TypeScript: Full type safety across the entire stack
- Code Quality: ESLint, Prettier, Husky pre-commit hooks
π οΈ Development Tools
βββ Nx Workspace (Monorepo management)
βββ TypeScript (Type safety)
βββ Code Quality
βββ ESLint (Linting)
βββ Prettier (Formatting)
βββ Husky (Pre-commit hooks)
π Frontend (Next.js 14)
βββ Framework: React + App Router
βββ Styling: Tailwind CSS
βββ State: React Hooks + Context API
βββ 3D Graphics: Three.js
βββ Icons: Tabler Icons
π§ Backend (NestJS)
βββ API: GraphQL + Apollo Server
βββ Database: PostgreSQL + Prisma ORM
βββ Authentication: JWT + NextAuth.js
βββ Payments: Stripe Integration
βββ Validation: class-validator
ποΈ Infrastructure
βββ Runtime: Node.js v18+
βββ Package Manager: Yarn
βββ Containerization: Docker
To avoid version mismatch issues, ensure you are using the exact versions specified below:
- Node.js:
20.x(Required) - Yarn: Latest stable version
- NestJS:
^9.0.0 - Next.js:
14.1.4 - TypeScript:
^5.4.3(root),^5(apps),^4.7.4(API)
- Prisma:
5.11.0 - Prisma Client:
5.11.0
- Apollo Server:
4.10.2 - GraphQL:
16.8.1 - NestJS GraphQL:
12.1.1
- Tailwind CSS:
3.3.0
- Nx:
22.3.3 - ESLint:
^8.0.1 - Prettier:
^2.3.2 - Jest:
29.5.0
Node.js: 20.x
NestJS: ^9.0.0
Next.js: 14.1.4
Prisma: 5.11.0
Prisma Client: 5.11.0
Apollo Server: 4.10.2
GraphQL: 16.8.1
Tailwind CSS: 3.3.0
Nx: 22.3.3
Before you begin, ensure you have the following installed:
- Node.js (v18 or higher)
- Yarn package manager
- PostgreSQL database
- Docker (optional, for containerized deployment)
-
Clone the repository
git clone https://github.com/your-username/openspace.git cd openspace -
Install dependencies
yarn install
-
Set up environment variables
Copy the example environment files and configure them:
# API Environment cp apps/api/.env.example apps/api/.env # Web Applications cp apps/web/.env.example apps/web/.env cp apps/web-admin/.env.example apps/web-admin/.env cp apps/web-manager/.env.example apps/web-manager/.env cp apps/web-valet/.env.example apps/web-valet/.env
Configure the following key variables:
DATABASE_URL: PostgreSQL connection stringNEXTAUTH_SECRET: Authentication secretSTRIPE_SECRET_KEY: Stripe payment secretGOOGLE_CLIENT_ID: Google OAuth client ID
-
Set up the database
# Navigate to API directory cd apps/api # Run database migrations npx prisma migrate dev # Seed the database with sample data npx prisma db seed
-
Start the development servers
# From project root yarn dev # Or start services individually: yarn nx serve api # API server (Port 3000) yarn nx serve web # Customer app (Port 3001) yarn nx serve web-admin # Admin panel (Port 3004) yarn nx serve web-manager # Manager dashboard yarn nx serve web-valet # Valet app
1. π START SETUP
βββ Check Prerequisites
β βββ Node.js v18+ installed? β If NO β Install Node.js v18+
β βββ Yarn installed? β If NO β Install Yarn
β βββ PostgreSQL installed? β If NO β Install PostgreSQL
β
βββ Clone Repository
β βββ git clone https://github.com/your-username/openspace.git
β
βββ Install Dependencies
β βββ yarn install
β
βββ Configure Environment
β βββ Copy .env.example files to .env
β βββ Set DATABASE_URL, NEXTAUTH_SECRET, STRIPE_SECRET_KEY, etc.
β
βββ Setup Database
β βββ cd apps/api
β βββ npx prisma migrate dev
β βββ npx prisma db seed
β
βββ Start Development Servers
βββ yarn dev (from project root)
βββ Access applications:
βββ API: http://localhost:3000
βββ Customer App: http://localhost:3001
βββ Manager App: http://localhost:3002
βββ Valet App: http://localhost:3003
βββ Admin Panel: http://localhost:3004
βββ π SETUP COMPLETE!
- Sign Up/Login: Create an account or sign in with Google
- Find Parking: Search for available garages in your area
- Book a Spot: Select dates, times, and parking preferences
- Request Valet: Optional valet pickup/drop-off services
- Track & Pay: Monitor your booking and complete payment
- Manage Facilities: Add and configure parking garages
- Slot Configuration: Set up parking spaces with pricing
- Monitor Bookings: View real-time booking activity
- Valet Coordination: Assign valets to customer requests
- Analytics: Review performance metrics and revenue
- Mobile App Access: Dedicated mobile interface
- Service Requests: Receive pickup/drop-off assignments
- GPS Tracking: Real-time location sharing with customers
- Status Updates: Mark services as completed
- Earnings Tracking: Monitor completed services
Login Page |
Parking Locations on Map |
Garage Booking - Step 1 |
Garage Booking - Step 2 |
Payment Processing |
Booking History |
Manager Dashboard |
Create New Garage |
Approve Bookings |
Manage Valets |
Valet's Trips |
Manage All Garages |
Admin Management Panel |
# Code formatting
yarn format:check # Check code formatting
yarn format:write # Auto-format code
# Type checking and linting
yarn tsc # TypeScript compilation check
yarn lint # ESLint checking
# Building
yarn build # Build all applications
yarn nx build api # Build specific app
# Validation
yarn validate # Run format, type-check, lint, and build- GraphQL Schema: Auto-generated from Prisma models
- Resolvers: Business logic for each entity
- DTOs: Input validation and transformation
- Services: Database operations and external integrations
- Guards: Authentication and authorization
- Pages: Next.js app router structure
- Components: Reusable UI components from shared libraries
- Hooks: Custom React hooks for data fetching
- Utils: Helper functions and constants
- UI Library: Component library with Tailwind styling
- Forms: Zod schemas and React Hook Form utilities
- Network: GraphQL client with code generation
- 3D: Three.js utilities for garage visualization
- Utils: Common utilities and TypeScript types
openspace/
βββ apps/ # Applications
β βββ api/ # NestJS GraphQL API Backend
β β βββ src/
β β β βββ main.ts # Application entry point
β β β βββ app.module.ts # Main application module
β β β βββ common/ # Shared utilities & guards
β β β βββ models/ # GraphQL resolvers & DTOs
β β βββ prisma/ # Database schema & migrations
β β βββ package.json
β βββ web/ # Customer Web App (Port 3001)
β β βββ src/app/ # Next.js app router pages
β β βββ src/components/ # React components
β β βββ package.json
β βββ web-admin/ # Admin Management Portal (Port 3004)
β βββ web-manager/ # Garage Manager Dashboard
β βββ web-valet/ # Valet Mobile Application
βββ libs/ # Shared Libraries
β βββ ui/ # Reusable UI Component Library
β β βββ src/components/ # UI components
β β βββ src/styles/ # Tailwind styles
β βββ forms/ # Form Components & Validation
β β βββ src/
β β β βββ bookSlot.tsx # Booking form
β β β βββ createGarage.tsx # Garage creation form
β β β βββ schemas.ts # Zod validation schemas
β βββ network/ # GraphQL Client & API Utilities
β β βββ src/
β β β βββ config/ # GraphQL configuration
β β β βββ gql/ # Generated GraphQL types
β βββ 3d/ # Three.js 3D Visualization Library
β β βββ src/
β β β βββ components/ # 3D components
β β β βββ scenes/ # 3D scenes
β βββ util/ # Utility Functions & Types
β βββ constants.ts # App constants
β βββ date.ts # Date utilities
β βββ hooks/ # Custom React hooks
βββ assets/ # Static assets (screenshots, images)
βββ tools/ # Development tools & scripts
βββ package.json # Root package.json
βββ nx.json # Nx workspace configuration
βββ README.md # This file
βββ other config files...
- JWT Authentication: Secure token-based authentication
- Role-Based Access Control: Granular permissions system
- Input Validation: Comprehensive request validation
- SQL Injection Protection: Parameterized queries via Prisma
- XSS Protection: Sanitized inputs and CSP headers
- Rate Limiting: API rate limiting and DDoS protection
- IP Blocking: Configurable IP-based access control
- CAPTCHA Integration: hCaptcha for bot protection
The GraphQL API provides comprehensive documentation accessible at:
- GraphQL Playground:
http://localhost:3000/graphql - Swagger UI:
http://localhost:3000/api(REST endpoints)
- Users: Customer, Manager, Valet, and Admin accounts
- Garages: Parking facilities with slots and pricing
- Bookings: Parking reservations with timeline tracking
- ValetAssignments: Pickup and drop-off service coordination
- Reviews: Customer feedback system
- Verifications: Admin approval system for garages
- Environment variables configured
- Database migrations applied
- SSL certificates installed
- Domain configured
- CDN setup for static assets
- Monitoring and logging configured
- Backup strategy implemented
# Build and run with Docker Compose
docker-compose up -d
# Or build individual services
docker build -t openspace-api apps/api/
docker build -t openspace-web apps/web/We welcome contributions to OpenSpace! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes and ensure tests pass
- Run validation:
yarn validate - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow the existing code style and conventions
- Write comprehensive tests for new features
- Update documentation for API changes
- Ensure TypeScript strict mode compliance
- Use conventional commit messages
OpenSpace Contribution Workflow
π₯ CONTRIBUTOR STARTS HERE
β
βββ 1. Fork Repository on GitHub
β βββ Create your own copy of the project
β
βββ 2. Clone Your Fork Locally
β βββ git clone https://github.com/YOUR_USERNAME/openspace.git
β
βββ 3. Create Feature Branch
β βββ git checkout -b feature/your-awesome-feature
β
βββ 4. Make Your Changes
β βββ Write code, add tests, update documentation
β βββ Follow coding standards and conventions
β
βββ 5. Run Validation Checks
β βββ yarn validate (runs format, lint, type-check, build)
β βββ yarn test (run tests)
β
βββ 6. Tests Pass?
β βββ YES β Continue to commit
β βββ NO β Fix issues and re-run validation
β
βββ 7. Commit Your Changes
β βββ git commit -m 'feat: add awesome feature description'
β (Use conventional commit format)
β
βββ 8. Push to Your Fork
β βββ git push origin feature/your-awesome-feature
β
βββ 9. Create Pull Request
β βββ Open PR on GitHub with clear description
β
βββ 10. Code Review Process
β βββ Maintainers review your code
β βββ Feedback provided if needed
β
βββ 11. Review Approved?
β βββ YES β Merge to main branch
β βββ NO β Address feedback and update PR
β
βββ π CONTRIBUTION COMPLETE!
βββ Your changes are now part of OpenSpace!
This project is licensed under the ISC License - see the LICENSE file for details.
- NestJS Community for the excellent framework
- Prisma Team for the powerful ORM
- Next.js Team for the amazing React framework
- Tailwind CSS for the utility-first styling approach
- Three.js for 3D visualization capabilities














