mirror of
https://github.com/DRYTRIX/TimeTracker.git
synced 2026-01-03 10:09:40 -06:00
Timer/Editing - Add/edit time-entry UI and flows in templates (`templates/timer/*`) - Extend timer and API routes (`app/routes/timer.py`, `app/routes/api.py`) - Update mobile interactions (`app/static/mobile.js`) Invoices/PDF - Improve invoice model and route handling (`app/models/invoice.py`, `app/routes/invoices.py`) - Enhance PDF generation and fallback logic (`app/utils/pdf_generator*.py`) - Adjust invoice view layout (`templates/invoices/view.html`) Docker/Startup - Refine Docker build and startup paths (`Dockerfile`) - Improve init/entrypoint scripts (`docker/init-database-*.py`, new `docker/entrypoint*.sh`, `docker/entrypoint.py`) - General startup robustness and permissions fixes Docs/UI - Refresh README and Docker docs (setup, troubleshooting, structure) - Minor UI/help updates (`templates/main/help.html`, `templates/projects/create.html`) - Remove obsolete asset (`assets/screenshots/Task_Management.png`) - Add repo hygiene updates (e.g., `.gitattributes`)
6.9 KiB
6.9 KiB
TimeTracker Project Structure
This document provides an overview of the cleaned up TimeTracker project structure after removing unnecessary files and consolidating the codebase.
📁 Root Directory Structure
TimeTracker/
├── 📁 app/ # Main Flask application
├── 📁 assets/ # Static assets (images, screenshots)
├── 📁 docker/ # Docker configuration files
├── 📁 templates/ # Additional template files
├── 📁 tests/ # Test suite
├── 📁 .github/ # GitHub workflows and configurations
├── 📁 logs/ # Application logs (with .gitkeep)
├── 🐳 Dockerfile # Main Dockerfile
├── 🐳 Dockerfile # Main Dockerfile
├── 📄 docker-compose.yml # Local development compose
├── 📄 docker-compose.remote.yml # Remote/production compose (ghcr.io)
├── 📄 docker-compose.remote-dev.yml # Remote dev/testing compose (ghcr.io)
├── 📄 requirements.txt # Python dependencies
├── 📄 app.py # Application entry point
├── 📄 env.example # Environment variables template
├── 📄 README.md # Main project documentation
├── 📄 PROJECT_STRUCTURE.md # This file
├── 📄 CONTRIBUTING.md # Contribution guidelines
├── 📄 CODE_OF_CONDUCT.md # Community code of conduct
├── 📄 LICENSE # GPL v3 license
├── 📄 GITHUB_WORKFLOW_IMAGES.md # Docker image workflow docs
├── 📄 DOCKER_PUBLIC_SETUP.md # Public container setup docs
├── 📄 REQUIREMENTS.md # Detailed requirements documentation
├── 📄 deploy-public.bat # Windows deployment script
└── 📄 deploy-public.sh # Linux/Mac deployment script
🧹 Cleanup Summary
Files Removed
DATABASE_INIT_FIX_FINAL_README.md- Database fix documentation (resolved)DATABASE_INIT_FIX_README.md- Database fix documentation (resolved)TIMEZONE_FIX_README.md- Timezone fix documentation (resolved)Dockerfile.test- Test Dockerfile (not needed)Dockerfile.combined- Combined Dockerfile (consolidated)docker-compose.yml- Old compose file (replaced)deploy.sh- Old deployment script (replaced)index.html- Unused HTML file_config.yml- Unused config filelogs/timetracker.log- Large log file (not in version control).pytest_cache/- Python test cache directory
Files Consolidated
- Dockerfiles: Now only
DockerfileandDockerfile.simple - Docker Compose: Now only
docker-compose.simple.ymlanddocker-compose.public.yml - Deployment: Now only
deploy-public.batanddeploy-public.sh
🏗️ Core Components
Application (app/)
- Models: Database models for users, projects, time entries, tasks, and settings
- Routes: API endpoints and web routes including task management
- Templates: Jinja2 HTML templates including task management views
- Utils: Utility functions including timezone management
- Config: Application configuration
Docker Configuration (docker/)
- Startup scripts: Container initialization and database setup
- Database scripts: SQL-based database initialization
- Configuration files: Docker-specific configurations
Templates (templates/)
- Admin templates: User management and system settings
- Error templates: Error page templates
- Main templates: Core application templates
- Project templates: Project management templates
- Report templates: Reporting and analytics templates
- Timer templates: Time tracking interface templates
Assets (assets/)
- Screenshots: Application screenshots for documentation
- Images: Logo and other static images
🚀 Deployment Options
1. Local Development
- File:
docker-compose.yml - Image: Built from local source
- Use case: Developer workstation
2. Remote/Production
- File:
docker-compose.remote.yml - Image:
ghcr.io/drytrix/timetracker:latest(or versioned tag) - Use case: Production deployment
3. Remote Dev/Testing
- File:
docker-compose.remote-dev.yml - Image:
ghcr.io/drytrix/timetracker:development - Use case: Pre-release testing
📚 Documentation Files
- README.md: Main project documentation and quick start guide
- PROJECT_STRUCTURE.md: This file - project structure overview
- TASK_MANAGEMENT_README.md: Detailed Task Management feature documentation
- CONTRIBUTING.md: How to contribute to the project
- CODE_OF_CONDUCT.md: Community behavior guidelines
✅ Task Management Feature
The Task Management feature is fully integrated into the application with automatic database migration:
Automatic Migration
- No manual setup required: Database tables are created automatically on first startup
- Integrated migration: Migration logic is built into the application initialization
- Fallback support: Manual migration script available if needed
Components Added
- Models:
Taskmodel with full relationship support - Routes: Complete CRUD operations for task management
- Templates: Responsive task management interface
- Integration: Tasks linked to projects and time tracking
- GITHUB_WORKFLOW_IMAGES.md: Docker image build workflow
- DOCKER_PUBLIC_SETUP.md: Public container setup guide
- REQUIREMENTS.md: Detailed system requirements
🔧 Development Files
- requirements.txt: Python package dependencies
- app.py: Flask application entry point
- env.example: Environment variables template
- tests/: Test suite and test files
📝 Key Improvements Made
- Removed Duplicate Files: Eliminated redundant documentation and configuration files
- Consolidated Docker Setup: Streamlined to two main container types
- Updated Documentation: README now reflects current project state
- Timezone Support: Added comprehensive timezone management (100+ options)
- Clean Structure: Organized project for better maintainability
🎯 Getting Started
- Choose deployment type: Local dev, remote, or remote-dev
- Follow README.md: Complete setup instructions
- Use appropriate compose file:
docker-compose.yml,docker-compose.remote.yml, ordocker-compose.remote-dev.yml - Configure timezone: Access admin settings to set your local timezone
🔍 File Purposes
.gitkeepfiles: Ensure empty directories are tracked in Git.github/: GitHub Actions workflows for automated buildslogs/: Application log storage (cleaned up, only.gitkeepremains)LICENSE: GPL v3 open source license.gitignore: Git ignore patterns for temporary files
This cleaned up structure provides a more maintainable and focused codebase while preserving all essential functionality and documentation.