edata

module
v0.0.0-...-aba2870 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 11, 2025 License: MIT

README ΒΆ

edata

Status Version Stability Go Version License

A Go application demonstrating subscription service implementation with best practices.

Note: This project is currently under active development. Features and documentation may be incomplete or subject to change.

🎯 Overview

This educational project showcases how to build applications in Go, featuring:

  • Clean architecture and project organization
  • PostgreSQL database management
  • Docker containerization
  • Database migrations
  • JWT authentication
  • RESTful API design

🚧 Development Status

  • Stage: Alpha
  • API Stability: Experimental
  • Features: In Progress
Current Focus Areas
  • Core API implementation
  • Authentication & authorization
  • Database schema design
  • Testing infrastructure
  • API documentation

πŸ—οΈ Project Structure

edata/
β”œβ”€β”€ bin/                  # Compiled binaries
β”œβ”€β”€ cmd/                  # Application entrypoints
β”‚   β”œβ”€β”€ api/             # API server
β”‚   └── migrate/         # DB migration tool
β”œβ”€β”€ config/              # Configuration management
β”œβ”€β”€ db/                  # Database layer
β”œβ”€β”€ infra/               # Infrastructure setup
β”œβ”€β”€ service/             # Business logic
β”œβ”€β”€ types/               # Core types/models
└── utils/               # Shared utilities

View detailed structure

πŸš€ Getting Started

Prerequisites
  • Go 1.20 or higher
  • Docker and Docker Compose
  • Make
Quick Start
  1. Clone the repository

    git clone https://github.com/sudarakas/edata.git
    cd edata
    
  2. Set up environment

    cp .env.example .env
    
  3. Start database

    docker-compose -f infra/db.yaml up -d
    
  4. Run migrations

    make migrate-up
    
  5. Start server

    make run
    

βš™οΈ Configuration

Environment Variables
# Server
PUBLIC_HOST=http://localhost
PORT=8080

# Database
DB_USER=postgres
DB_PASSWORD=postgres
DB_HOST=localhost
DB_PORT=5432
DB_NAME=edata_db

πŸ“‹ Available Commands

Command Description
make run Start the application
make migrate-up Run database migrations
make migrate-down Rollback migrations
make test Run tests
make lint Run linters

πŸ” Detailed Structure

edata/
β”œβ”€β”€ .env                  # Environment variables
β”œβ”€β”€ bin/                  # Compiled binaries
β”‚   └── edata
β”œβ”€β”€ cmd/                  # Application entrypoints
β”‚   β”œβ”€β”€ api/             # API server
β”‚   β”‚   └── main.go
β”‚   └── migrate/         # Migration tool
β”‚       β”œβ”€β”€ main.go
β”‚       └── migrations/
β”œβ”€β”€ config/              # Configuration
β”œβ”€β”€ db/                  # Database layer
β”œβ”€β”€ go.mod              # Go modules
β”œβ”€β”€ go.sum              # Module checksums
β”œβ”€β”€ infra/              # Infrastructure
β”‚   └── db.yaml         # DB container config
β”œβ”€β”€ Makefile            # Build automation
β”œβ”€β”€ service/            # Business logic
β”‚   β”œβ”€β”€ auth/          # Authentication
β”‚   └── user/          # User management
β”œβ”€β”€ types/              # Core types
β”‚   └── types.go
└── utils/             # Shared utilities

🀝 Contributing

Currently, this project is in initial development and not accepting contributions. Once stable, contribution guidelines will be provided.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


Built with ❀️ using Go

Directories ΒΆ

Path Synopsis
cmd
api
migrate command
service

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL