An open-source project and time management tool designed to track work hours, manage deadlines, and maintain a healthy balance between commercial and internal/pet projects.
- Time Tracking: Log hours spent on specific tasks and projects.
- Deadline Management: Keep track of upcoming project milestones.
- Project Balancing: Visualise the distribution of effort between commercial work and internal/pet projects.
- PWA Data Integration: Import and analyse data from Progressive Web Apps for extended productivity insights.
- Language: Python 3.14
- Framework: Django 6+
- Database: PostgreSQL (via Docker)
- Environment & Package Management: uv
To run this project locally, you will need Python 3.14+, uv, and Docker installed on your machine.
git clone https://github.com/OleksanderShevchenko/MyProjectsManager.git
cd MyProjectsManagerThis project uses uv for lightning-fast dependency management.
uv syncCopy the example environment file and update the variables if necessary:
cp .env.example .envGenerate new secret key for .env and put it to your .env
uv run python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"Update database settings:
- If you use postgres database from docker - set parameters at start of .env
- If you use cloud database - set its url.
To be able to import data from MS Project update PWA_URL in your .env
We use Docker to run PostgreSQL locally.
docker-compose up -duv run python manage.py migrate
uv run python manage.py runserverThere are two ways to create a backup of your local database.
This method creates a complete SQL dump of the database running inside the Docker container (myprojectsmanager_db).
Important for Windows PowerShell users: The command must be wrapped in cmd /c to prevent PowerShell from corrupting the .sql file encoding.
Backup:
cmd /c 'docker exec -t myprojectsmanager_db pg_dump -U postgres projects_db > backup_12_08_2026_real.sql'Restore: Create an empty database projects_db on your server/container, then run:
psql -U postgres -d projects_db -f backup_12_08_2026_real.sqlThis method exports all database records into a single JSON file. It is database-agnostic and ideal for migrating data (e.g., from PostgreSQL to SQLite).
Important for Windows users: Use the -X utf8 flag and -o parameter to avoid charmap codec can't encode errors when exporting Cyrillic or special characters.
Backup:
uv run python -X utf8 manage.py dumpdata -o datadump_12_08_2026.jsonRestore:
uv run python manage.py loaddata datadump_12_08_2026.jsonContributions, issues, and feature requests are welcome! Feel free to check the issues page.
This project is open-source and available under the MIT License.