- Add BookingService with core booking management functionality - Implement mock repositories for testing booking service interactions - Create booking integration test with Jitsi room generation - Add methods for creating, retrieving, and managing bookings - Integrate Jitsi service for generating meeting room URLs - Implement schedule management within booking service - Add support for booking creation with user and schedule context - Enhance database layer to support repository retrieval Closes #TICKET_NUMBER (if applicable) |
||
|---|---|---|
| cmd | ||
| internal | ||
| .env | ||
| .env.example | ||
| .gitignore | ||
| brainstorm.md | ||
| go.mod | ||
| go.sum | ||
| Makefile | ||
| README.md | ||
Video Conference Booking System
A Go-based backend service for booking video conference meetings with Stripe payment integration and Jitsi Meet video conferencing.
Features
- User registration and authentication
- Meeting booking with payment processing
- Jitsi Meet integration for video conferences
- Email notifications via SMTP
- Admin dashboard for system management
- CLI tools for admin operations
Project Structure
├── cmd/
│ ├── server/ # HTTP server entry point
│ └── cli/ # CLI tools entry point
├── internal/
│ ├── config/ # Configuration management
│ ├── server/ # HTTP server setup
│ ├── cli/ # CLI commands
│ ├── models/ # Database models
│ ├── services/ # Business logic layer
│ ├── repositories/ # Data access layer
│ ├── handlers/ # HTTP handlers
│ └── middleware/ # HTTP middleware
├── bin/ # Compiled binaries
├── .env.example # Environment variables template
├── Makefile # Development commands
└── README.md # This file
Prerequisites
- Go 1.21 or higher
- PostgreSQL database
- Stripe account (for payments)
- SMTP server (for email notifications)
Setup
- Clone the repository
- Copy environment variables:
cp .env.example .env - Update
.envwith your configuration - Install dependencies:
make deps - Build the application:
make build
Running the Application
HTTP Server
make run
# or
./bin/server
CLI Tools
make cli
# or
./bin/cli
Development
make build- Build server binarymake build-cli- Build CLI binarymake run- Run the servermake test- Run testsmake fmt- Format codemake vet- Vet codemake clean- Clean build artifacts
API Endpoints
The server will start on http://localhost:8080 by default.
GET /health- Health checkPOST /api/v1/auth/register- User registrationPOST /api/v1/auth/login- User loginGET /api/v1/bookings- Get user bookingsPOST /api/v1/bookings- Create bookingGET /api/v1/schedules- Get available slotsPOST /api/v1/payments/intent- Create payment intentGET /api/v1/admin/dashboard- Admin dashboard
Environment Variables
See .env.example for all required environment variables.
License
This project is proprietary software.