Go to file
ats-tech25 a45b22afd0 feat(payments): Implement comprehensive Stripe payment integration
- Add PaymentHandler with methods for creating payment intents, confirming payments, and handling webhooks
- Implement PaymentService interface with Stripe payment processing logic
- Create DTOs for payment-related requests in services/interfaces.go
- Add error handling and validation for payment-related operations
- Configure Stripe API key and support for automatic payment methods
- Implement webhook signature verification and event processing
- Enhance error responses with detailed error messages and appropriate HTTP status codes
Enables full payment flow using Stripe, supporting intent creation, payment confirmation, and webhook handling for robust transaction management.
2025-11-05 15:30:53 +00:00
cmd feat(project): Initialize project structure and core components 2025-11-05 15:06:07 +00:00
internal feat(payments): Implement comprehensive Stripe payment integration 2025-11-05 15:30:53 +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(payments): Implement comprehensive Stripe payment integration 2025-11-05 15:30:53 +00:00
go.sum feat(auth): Implement comprehensive authentication and authorization middleware 2025-11-05 15:21:56 +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.