Files
MyClub/DOCS/overview.md
T
Tomas Dvorak f5b6f83974 dev day #99
2025-11-21 08:44:44 +01:00

4.7 KiB

Fotbal Club - Project Overview

Project Description

A comprehensive football (soccer) club management system built with Go (Gin) backend and a modern frontend. The application serves as a complete platform for managing football club operations, including team management, news publishing, event scheduling, and fan engagement.

Technical Stack

Backend

  • Language: Go (Golang)
  • Framework: Gin Web Framework
  • Database: PostgreSQL (with GORM ORM)
  • Authentication: JWT (JSON Web Tokens)
  • Templating: Go HTML templates

Frontend

  • Framework: React (TypeScript)
  • Styling: CSS Modules, with custom theme support
  • Build Tool: Webpack
  • Testing: Jest, React Testing Library

DevOps & Infrastructure

  • Containerization: Docker
  • CI/CD: GitHub Actions
  • Monitoring: Prometheus metrics
  • Logging: Custom logging service

Core Features

1. User Management

  • User registration and authentication
  • Role-based access control (Admin, Editor, User)
  • Profile management
  • Password reset functionality

2. Content Management

  • Article publishing system
  • Media library for images and documents
  • WYSIWYG editor for content creation
  • Categories and tags for content organization

3. Team & Player Management

  • Team rosters and player profiles
  • Player statistics and performance tracking
  • Team lineup configuration
  • Match scheduling and results

4. Event Management

  • Event creation and management
  • Calendar integration
  • RSVP and attendance tracking
  • Event galleries

5. Fan Engagement

  • Comments system with moderation
  • Polls and surveys
  • Newsletter subscriptions
  • Social media integration

6. E-commerce

  • Club merchandise store
  • Ticket sales
  • Donation system
  • Payment processing integration

7. Analytics & Reporting

  • Website traffic analytics
  • User engagement metrics
  • Custom report generation
  • Export functionality for data

Project Structure

fotbal-club/
├── cmd/                  # Application entry points
│   └── sqlmigrate/       # Database migration tool
├── internal/             # Private application code
│   ├── config/           # Configuration management
│   ├── controllers/      # Request handlers
│   ├── middleware/       # HTTP middleware
│   ├── models/           # Database models
│   ├── routes/           # Route definitions
│   └── services/         # Business logic
├── pkg/                  # Reusable packages
│   ├── database/         # Database connection and migrations
│   ├── email/            # Email service
│   └── logger/           # Logging utilities
├── frontend/             # Frontend application
│   ├── public/           # Static assets
│   ├── src/              # Source code
│   │   ├── components/   # React components
│   │   ├── pages/        # Page components
│   │   ├── services/     # API services
│   │   ├── styles/       # Global styles
│   │   └── utils/        # Utility functions
│   └── tests/            # Frontend tests
├── uploads/              # User-uploaded files
├── .env                  # Environment variables
└── go.mod               # Go module definition

Key Technical Components

Backend Architecture

  • RESTful API design
  • Dependency Injection for better testability
  • Repository pattern for data access
  • Middleware for cross-cutting concerns (auth, logging, etc.)
  • Background workers for async tasks

Frontend Architecture

  • Component-based UI architecture
  • State management with React Context API
  • Responsive design for all device sizes
  • Progressive Web App capabilities
  • Accessibility (a11y) compliant

Security Features

  • CSRF protection
  • XSS prevention
  • Rate limiting
  • Secure password hashing (bcrypt)
  • Input validation and sanitization

Development Setup

Prerequisites

  • Go 1.20+
  • Node.js 16+
  • PostgreSQL 13+
  • Redis (for caching and sessions)

Installation

  1. Clone the repository
  2. Set up environment variables (copy .env.example to .env)
  3. Install backend dependencies: go mod download
  4. Install frontend dependencies: cd frontend && npm install
  5. Run database migrations: go run cmd/sqlmigrate/main.go
  6. Start the development server: go run main.go

Deployment

The application can be deployed using:

  • Docker containers
  • Traditional VM deployment
  • Cloud platforms (AWS, GCP, Azure)

API Documentation

API documentation is available at /api/docs when running in development mode.

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a new Pull Request

License

[Specify License]