backend-service/README.md

104 lines
2.5 KiB
Markdown
Raw Normal View History

# 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:
```bash
cp .env.example .env
```
3. Update `.env` with your configuration
4. Install dependencies:
```bash
make deps
```
5. Build the application:
```bash
make build
```
## Running the Application
### HTTP Server
```bash
make run
# or
./bin/server
```
### CLI Tools
```bash
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.