BoxHook - Implementation Plan
1. Project Overview
BoxHook is a full-stack box cricket venue booking platform. It provides role-based access for Users, Venue
Owners, and Administrators to facilitate seamless booking, management, and revenue tracking of cricket
venues.
2. Implementation Phases
Phase 1: Authentication & Authorization
Goals: Secure user registration, login, and session management.
Features:
Role-based models ( admin , owner , user )
Password hashing with Bcrypt
Session-based authentication stored in MongoDB
Phase 2: Admin Panel & Venue Management
Goals: Centralized management of the platform by administrators.
Features:
CRUD operations for Owners and Box Venues
Image upload integration
Venue assignment to specific owners
Revenue tracking and payout dashboard
Phase 3: Public Interfaces
Goals: User-facing pages for browsing and discovery.
Features:
Public listing of all open venues
Specific Box detail pages featuring images, pricing, and facilities
Map view and location-based filtering
Phase 4: Booking Engine
Goals: Robust slot booking system.
Features:
Database-level compound indexes to prevent double-booking
Date and time slot selection
Status tracking ( pending , confirmed , completed , cancelled )
Phase 5: Payment Gateway Integration
Goals: Secure online transaction processing.
Features:
Razorpay order creation and checkout integration
Webhook/HMAC signature verification for secure capture
Database recording of payment reference IDs and commission splits
Phase 6 & 7: User & Owner Dashboards
Goals: Personalized management consoles for platform actors.
Features:
User: View booking history, active bookings, profile editing
Owner: Track assigned venue utilization, mark sessions complete, view earnings and
pending payout balances
3. Technology Stack & Dependencies
Core Stack
[Link]: Server runtime environment
[Link] ( express ): Web application framework
MongoDB & Mongoose ( mongoose ): NoSQL database and Object Data Modeling
EJS ( ejs , express-ejs-layouts ): Embedded JavaScript templating for server-side HTML
rendering
Security & Authentication
Bcrypt ( bcrypt ): Password hashing function
Express Session ( express-session ): Session state management
Connect Mongo ( connect-mongo ): MongoDB session store
Payment & Third-Party Services
Razorpay ( razorpay ): Secure payment gateway processing
Nodemailer ( nodemailer ): SMTP email delivery system
Utilities & Middleware
Dotenv ( dotenv ): Environment variable management
Multer ( multer ): Multipart/form-data middleware for handling image uploads
Express Rate Limit ( express-rate-limit ): Basic rate-limiting middleware for securing
authentication routes
Method Override ( method-override ): Lets use use HTTP verbs such as PUT or DELETE in
places where the client doesn't support it
Express Flash ( express-flash ): Flash messages for UI notifications
Frontend Libraries (Via CDN/Static)
Bootstrap 5: Responsive CSS framework
Leaflet: Interactive map rendering for venue locations
[Link]: Data visualization for the Admin & Owner revenue dashboards
SweetAlert2: Enhanced modal notification and confirmation dialogues