- Add initial project scaffolding with Go module and project structure - Create server and CLI entry points for application - Implement Makefile with development and build commands - Add `.env.example` with comprehensive configuration template - Set up README.md with project documentation and setup instructions - Configure basic dependencies for server, database, and CLI tools - Establish internal package structure for models, services, and handlers - Add initial configuration and environment management - Prepare for HTTP server, CLI, and database integration
104 lines
2.5 KiB
Markdown
104 lines
2.5 KiB
Markdown
# 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. |