Go to file
ats-tech25 ddfa2de49e feat(app): Implement comprehensive application lifecycle management
- Add new `app` package to manage application initialization and lifecycle
- Refactor `main.go` to use new application management approach
- Implement graceful shutdown with context timeout and signal handling
- Add dependency injection container initialization
- Enhance logging with configurable log levels and structured logging
- Update configuration loading and server initialization process
- Modify Jitsi configuration in `.env` for custom deployment
- Improve error handling and logging throughout application startup
- Centralize application startup and shutdown logic in single package
Introduces a more robust and flexible application management system with improved initialization, logging, and shutdown capabilities.
2025-11-07 19:22:26 +00:00
cmd feat(app): Implement comprehensive application lifecycle management 2025-11-07 19:22:26 +00:00
internal feat(app): Implement comprehensive application lifecycle management 2025-11-07 19:22:26 +00:00
.env feat(app): Implement comprehensive application lifecycle management 2025-11-07 19:22:26 +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 chore(dependencies): Update project dependencies and middleware packages 2025-11-06 09:31:51 +00:00
go.sum chore(dependencies): Update project dependencies and middleware packages 2025-11-06 09:31:51 +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.