Go to file
ats-tech25 98f4b4392d feat(booking): Implement comprehensive booking management functionality
- Add full implementation for booking handlers with complete CRUD operations
- Implement GetAvailableSlots endpoint to retrieve available booking time slots
- Add CreateBooking handler with robust error handling and validation
- Implement GetUserBookings endpoint to fetch user's booking history
- Add CancelBooking handler with specific error scenarios and authorization checks
- Integrate booking service and middleware for authentication and request processing
- Add support for date parsing and slot availability checking
- Enhance error responses with detailed error messages and appropriate HTTP status codes
- Integrate with existing authentication and middleware components
2025-11-05 16:35:36 +00:00
cmd feat(project): Initialize project structure and core components 2025-11-05 15:06:07 +00:00
internal feat(booking): Implement comprehensive booking management functionality 2025-11-05 16:35:36 +00:00
.env feat(auth): Implement comprehensive authentication and authorization middleware 2025-11-05 15:21:56 +00:00
.env.example feat(project): Initialize project structure and core components 2025-11-05 15:06:07 +00:00
.gitignore feat(project): Initialize project structure and core components 2025-11-05 15:06:07 +00:00
brainstorm.md docs(brainstorm): Update payment method from PayPal to Stripe 2025-11-05 14:33:46 +00:00
go.mod feat(booking): Implement comprehensive booking management functionality 2025-11-05 16:35:36 +00:00
go.sum feat(booking): Implement comprehensive booking management functionality 2025-11-05 16:35:36 +00:00
Makefile feat(project): Initialize project structure and core components 2025-11-05 15:06:07 +00:00
README.md feat(project): Initialize project structure and core components 2025-11-05 15:06:07 +00:00

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

  1. Clone the repository
  2. Copy environment variables:
    cp .env.example .env
    
  3. Update .env with your configuration
  4. Install dependencies:
    make deps
    
  5. 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 binary
  • make build-cli - Build CLI binary
  • make run - Run the server
  • make test - Run tests
  • make fmt - Format code
  • make vet - Vet code
  • make clean - Clean build artifacts

API Endpoints

The server will start on http://localhost:8080 by default.

  • GET /health - Health check
  • POST /api/v1/auth/register - User registration
  • POST /api/v1/auth/login - User login
  • GET /api/v1/bookings - Get user bookings
  • POST /api/v1/bookings - Create booking
  • GET /api/v1/schedules - Get available slots
  • POST /api/v1/payments/intent - Create payment intent
  • GET /api/v1/admin/dashboard - Admin dashboard

Environment Variables

See .env.example for all required environment variables.

License

This project is proprietary software.