Skip to content

phantomop26/TaskMan

Repository files navigation

TaskMan

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).


Table of contents


Features

  • 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.


Tech stack

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

Requirements

  • 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

Quick start (recommended)

  1. Clone the repo:

    git clone https://github.com/phantomop26/TaskMan.git
    cd TaskMan
  2. Create and activate a virtual environment:

    python -m venv .venv
    source .venv/bin/activate    # macOS / Linux
    .venv\Scripts\activate       # Windows (Powershell)
  3. Install dependencies:

    pip install -r requirements.txt

    If you use poetry:

    poetry install
  4. Copy environment template and update values:

    cp .env.example .env
    # edit .env to configure DB, SECRET_KEY, etc.
  5. Apply DB migrations and run the development server (see framework-specific commands below).


Local development (framework-specific)

Django

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:8000

API & admin:

  • Admin dashboard: /admin
  • API endpoints: /api/tasks/ (if DRF or similar is used)

Flask

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:5000

If using Flask-Migrate:

flask db upgrade
flask db migrate -m "Initial migration"

FastAPI

If using FastAPI:

uvicorn app.main:app --reload
# Visit http://127.0.0.1:8000 and interactive docs at /docs or /redoc

Environment & configuration

Keep 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=true

If the project currently lacks an .env.example, consider adding one.


Database & migrations

  • 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.

Tests

Use pytest or unittest depending on the project setup.

Run tests:

# If using pytest
pytest
# If using Django test runner
python manage.py test

Add tests for:

  • Task model / database behavior
  • API endpoints (create/update/delete, validation)
  • UI smoke tests (if any) — consider Selenium / Playwright for E2E tests

Linting & formatting

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 .
flake8

Docker

A 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.


Deployment guidance

  • 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).

Architecture & folder structure

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).


Contributing

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

Roadmap

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.


License

This project is provided under the MIT License — replace if you prefer another license. See LICENSE file for full text.


Contact

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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published