Files
TimeTracker/docs
Dries Peeters a1aaee6afd feat: Redesign and enhance backup restore functionality with dual restore methods
Major improvements to the backup restore system with a complete UI overhaul
and enhanced functionality:

UI/UX Improvements:
- Complete redesign of restore page with modern Tailwind CSS
- Added prominent warning banners and danger badges to prevent accidental data loss
- Implemented drag-and-drop file upload with visual feedback
- Added real-time progress tracking with auto-refresh every 2 seconds
- Added comprehensive safety information sidebar with checklists
- Full dark mode support throughout restore interface
- Enhanced confirmation flows with checkbox and modal confirmations

Functionality Enhancements:
- Added dual restore methods: upload new backup or restore from existing server backups
- Enhanced restore route to accept optional filename parameter for existing backups
- Added "Restore" button to each backup in the backups management page
- Implemented restore confirmation modal with critical warnings
- Added loading states and button disabling during restore operations
- Improved error handling and user feedback

Backend Changes:
- Enhanced admin.restore() to support both file upload and existing backup restore
- Added dual route support: /admin/restore and /admin/restore/<filename>
- Added shutil import for file copy operations during restore
- Improved security with secure_filename validation and file type checking
- Maintained existing rate limiting (3 requests per minute)

Frontend Improvements:
- Added interactive JavaScript for file selection, drag-and-drop, and modal management
- Implemented auto-refresh during restore process to show live progress
- Added escape key support for closing modals
- Enhanced user feedback with file name display and button states

Safety Features:
- Pre-restore checklist with 5 verification steps
- Multiple warning levels throughout the flow
- Confirmation checkbox required before upload restore
- Modal confirmation required before existing backup restore
- Clear documentation of what gets restored and post-restore steps

Dependencies:
- Updated flask-swagger-ui from 4.11.1 to 5.21.0

Files modified:
- app/templates/admin/restore.html (complete rewrite)
- app/templates/admin/backups.html (added restore functionality)
- app/routes/admin.py (enhanced restore route)
- requirements.txt (updated flask-swagger-ui version)
- RESTORE_BACKUP_IMPROVEMENTS.md (documentation)

This provides a significantly improved user experience for the restore process
while maintaining security and adding powerful new restore capabilities.
2025-10-27 09:34:51 +01:00
..
2025-10-10 11:37:23 +02:00

TimeTracker Documentation

Welcome to the comprehensive TimeTracker documentation. Everything you need to install, configure, use, and contribute to TimeTracker.



🚀 Installation & Deployment

Getting Started

Database & Migrations

Docker & Containers


Feature Documentation

Core Features

Advanced Features

Additional Documentation


🔧 Technical Documentation

Project Structure

Development

CI/CD

Release & Images


🛠️ Troubleshooting

Common Issues

Quick Fixes

  • Port conflicts: Change PORT=8081 in docker-compose command
  • Database issues: Run docker-compose down -v && docker-compose up -d
  • Permission errors: Check file ownership with chown -R $USER:$USER .
  • Migration failures: See Database Migrations

📚 Additional Resources

Features & Improvements

Detailed documentation about features and improvements is available in:

Implementation Notes

Recent improvements and changes:

Feature Specific

Feature documentation and quick starts:


🔍 Documentation by Topic

For New Users

  1. Start with Main README for product overview
  2. Review Requirements to check if your system is compatible
  3. Follow Docker Public Setup for installation
  4. Explore Feature Documentation to learn what TimeTracker can do

For Developers

  1. Read Contributing Guidelines before making changes
  2. Review Project Structure to understand the codebase
  3. Check Solution Guide for technical patterns
  4. Use Local Testing with SQLite for development

For Administrators

  1. Follow Docker Public Setup for deployment
  2. Review Version Management for updates
  3. Set up Database Migrations for schema management
  4. Configure CI/CD for automated deployments

For Troubleshooting

  1. Check Docker Startup Troubleshooting
  2. Review Database Connection Issues
  3. Consult Solution Guide for common problems
  4. Check specific feature documentation if issue is feature-related

📝 Documentation Structure

docs/
├── README.md                          # This file - documentation index
├── REQUIREMENTS.md                    # System requirements
├── PROJECT_STRUCTURE.md               # Codebase architecture
├── CONTRIBUTING.md                    # Contribution guidelines
├── CODE_OF_CONDUCT.md                 # Community standards
│
├── cicd/                              # CI/CD documentation
│   ├── CI_CD_DOCUMENTATION.md
│   ├── CI_CD_QUICK_START.md
│   └── ...
│
├── features/                          # Feature-specific guides
│   ├── ALEMBIC_MIGRATION_README.md
│   ├── PROJECT_COSTS_FEATURE.md
│   └── ...
│
└── implementation-notes/              # Development notes
    ├── ANALYTICS_IMPROVEMENTS_SUMMARY.md
    ├── UI_IMPROVEMENTS_SUMMARY.md
    └── ...

🤝 Contributing to Documentation

Found an error? Want to improve the docs?

  1. Check the Contributing Guidelines
  2. Make your changes to the relevant documentation file
  3. Test that all links work correctly
  4. Submit a pull request with a clear description

Good documentation helps everyone! 📚


💡 Tips for Using This Documentation

  • Use the search function in your browser (Ctrl/Cmd + F) to find specific topics
  • Follow links to related documentation for deeper understanding
  • Start with Quick Links at the top if you're in a hurry
  • Browse by topic using the categorized sections
  • Check Implementation Notes for recent changes and improvements

Need help? Open an issue or check the troubleshooting section

Want to contribute? See our Contributing Guidelines


⬆ Back to Top