This commit is contained in:
Tomas Dvorak
2025-11-21 08:44:44 +01:00
parent c941313fd5
commit f5b6f83974
108 changed files with 8642 additions and 5871 deletions
+88
View File
@@ -0,0 +1,88 @@
# Logo Background Removal with Rembg
## Overview
Automated background removal for club and team logos using Rembg's deep learning capabilities.
https://github.com/danielgatis/rembg
## System Requirements
- Python 3.7+
- Rembg library (with optional GPU support)
- Basic image processing tools
## Architecture
### 1. Core Components
- **Logo Processor Service** (Go)
- Handles image processing pipeline
- Manages Python subprocess
- Implements error handling and fallbacks
- **Background Removal Script** (Python)
- Contains Rembg integration
- Processes individual images
- Handles file operations
### 2. Integration Points
- Upload handler modification
- File storage management
- Database updates for processed assets
## Implementation Workflow
1. **Image Upload**
- File validation
- Temporary storage
- Metadata extraction
2. **Background Processing**
- Queue management
- Process isolation
- Progress tracking
3. **Output Management**
- Transparent PNG generation
- Naming conventions
- Storage optimization
## Performance Optimization
### Processing
- Implement job queuing
- Support batch operations
- Memory management
### Caching
- Processed image cache
- Thumbnail generation
- CDN integration
## Error Handling
- Input validation
- Process timeouts
- Fallback mechanisms
## Security Considerations
- File type verification
- Size limitations
- Permission management
## Maintenance
- Dependency updates
- Model retraining
- Performance monitoring
## Scaling
- Horizontal scaling support
- Resource allocation
- Load balancing
## Monitoring & Logging
- Processing metrics
- Error tracking
- Usage analytics
## Future Enhancements
- Custom model training
- Batch processing UI
- Advanced editing features
+162
View File
@@ -0,0 +1,162 @@
# 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]