TaskMan is a simple, lightweight task & project management web application. It combines a Python backend with a static frontend (HTML/CSS/JavaScript) to let users create, edit, categorize, and track tasks and simple projects. This README is a practical, framework-agnostic guide to get the project running locally, tested, and deployed. Update the TODOs below with project-specific details (framework, ports, example screenshots, API keys).
- Features
- Tech stack
- Requirements
- Quick start (recommended)
- Local development (framework-specific)
- Environment & configuration
- Database & migrations
- Tests
- Linting & formatting
- Docker
- Deployment guidance
- Architecture & folder structure
- Contributing
- Roadmap
- License
- Contact
- Create, edit, and delete tasks
- Assign tasks to projects or categories
- Due dates, priority, and simple status workflow (todo → in progress → done)
- Search and filter tasks (by status, tag, due date)
- Lightweight, mobile-responsive UI (HTML/CSS with minimal JavaScript)
- RESTful API endpoints for tasks (if backend exposes an API)
- Authentication scaffolding (if implemented) — update according to your auth method
If your repository implements only a subset of these features, trim the list accordingly.
Based on repository language composition:
- Backend: Python (Flask / Django / FastAPI — adjust to match your code)
- Frontend: HTML, CSS, minimal JavaScript
- Recommended (optional): SQLite for local development, PostgreSQL for production
- Python 3.10+ (adjust to your project's required version)
- pip or poetry/poetry v1.5+/pipenv if you use them
- Node.js (optional) — only if you run frontend build tooling
- Docker (optional) — for containerized development / deployment
-
Clone the repo:
git clone https://github.com/phantomop26/TaskMan.git cd TaskMan -
Create and activate a virtual environment:
python -m venv .venv source .venv/bin/activate # macOS / Linux .venv\Scripts\activate # Windows (Powershell)
-
Install dependencies:
pip install -r requirements.txt
If you use poetry:
poetry install
-
Copy environment template and update values:
cp .env.example .env # edit .env to configure DB, SECRET_KEY, etc. -
Apply DB migrations and run the development server (see framework-specific commands below).
If the project uses Django, follow these steps (adjust paths/names to match your project):
# ensure requirements are installed and .env configured
python manage.py migrate
python manage.py createsuperuser # optional: create admin user
python manage.py runserver
# Visit http://127.0.0.1:8000API & admin:
- Admin dashboard: /admin
- API endpoints: /api/tasks/ (if DRF or similar is used)
If the project uses Flask:
export FLASK_APP=run.py # or the main app entry
export FLASK_ENV=development
flask run
# or
python run.py
# Visit http://127.0.0.1:5000If using Flask-Migrate:
flask db upgrade
flask db migrate -m "Initial migration"If using FastAPI:
uvicorn app.main:app --reload
# Visit http://127.0.0.1:8000 and interactive docs at /docs or /redocKeep secrets out of source control. Typical environment variables:
- SECRET_KEY (Django/Flask session key)
- DATABASE_URL (postgresql://user:pass@host:port/dbname)
- DEBUG (true/false)
- ALLOWED_HOSTS (Django) or equivalent host config
- EMAIL_* settings if email features exist
Provide a .env.example with the keys your app expects:
# .env.example
SECRET_KEY=your-secret-key-here
DATABASE_URL=sqlite:///./dev.db
DEBUG=trueIf the project currently lacks an .env.example, consider adding one.
- Local development: SQLite is simplest (no extra setup).
- Production: Use PostgreSQL or another production-ready DB.
- Migrations:
- Django: python manage.py makemigrations && python manage.py migrate
- Flask (Alembic/Flask-Migrate): flask db migrate && flask db upgrade
- FastAPI: Use Alembic for migrations if using SQLAlchemy
Seed or example data:
- Include a management command or script (e.g.,
scripts/seed.py) to populate sample tasks for local testing.
Use pytest or unittest depending on the project setup.
Run tests:
# If using pytest
pytest
# If using Django test runner
python manage.py testAdd tests for:
- Task model / database behavior
- API endpoints (create/update/delete, validation)
- UI smoke tests (if any) — consider Selenium / Playwright for E2E tests
Recommended tools:
- Black (formatting): pip install black
- isort (imports)
- flake8 or pylint (static analysis)
- Pre-commit hooks:
pip install pre-commit pre-commit install
Example:
black .
flake8A Dockerfile and docker-compose make it easy to standardize local dev & production.
Example docker-compose workflow:
version: "3.8"
services:
web:
build: .
command: gunicorn app.main:app -w 4 -k uvicorn.workers.UvicornWorker
volumes:
- .:/app
ports:
- "8000:8000"
env_file:
- .env
db:
image: postgres:15
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: taskman
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:Add a Dockerfile that matches your framework. If you'd like, I can generate a Dockerfile tailored to Django/Flask/FastAPI.
- Use Gunicorn + Uvicorn workers for ASGI (FastAPI) or Gunicorn/ Daphne for Django + channels.
- Serve static files via CDN or Nginx (or using whitenoise for simple cases).
- Use environment variables and a managed DB (RDS, Cloud SQL).
- Configure HTTPS with a certificate (Let's Encrypt).
- Add monitoring for errors and performance (Sentry, Prometheus + Grafana).
A suggested layout (adapt to existing repo):
- app/ or project/
- api/ # API endpoints (views/routers)
- models/ # DB models
- services/ # business logic
- templates/ # HTML templates
- static/
- css/
- js/
- images/
- tests/
- requirements.txt or pyproject.toml
- migrations/
- .env.example
- Dockerfile
- docker-compose.yml
Follow separation of concerns (models → services → API → frontend).
Contributions are welcome! A suggested CONTRIBUTING workflow:
- Fork the repo and create a branch: feature/your-feature-name
- Open a PR describing changes, link issues if present
- Follow existing coding style and add tests for significant changes
- Keep commits focused and descriptive
Consider adding:
- CONTRIBUTING.md
- CODE_OF_CONDUCT.md
- Issue templates and PR templates for your repository
Example improvements you might track:
- User accounts and sharing of task lists
- Due date reminders and notifications
- Subtasks and checklists
- Drag and drop UI for reordering tasks
- Recurring tasks and calendar integration
- Mobile app or PWA conversion
If you want, I can draft Issues that correspond to these roadmap items.
This project is provided under the MIT License — replace if you prefer another license. See LICENSE file for full text.
Maintainer: phantomop26
Thanks for checking out TaskMan! If you'd like, I can now:
- generate a CONTRIBUTING.md,
- create a Dockerfile and docker-compose.yml tailored to Django/Flask/FastAPI (tell me which framework your repo uses),
- scaffold a .env.example or a sample database seed script,
- or create a GitHub Actions CI workflow for tests and linting.
Tell me which of the above you want next and I will generate it now.