Skip to content

webAmoeba/task-manager

Repository files navigation

Hexlet tests and linter status:

Actions Status Quality Gate Status

Deployed:

🌎 task-manager.webamoeba.ru/

Task Manager:

Welcome to the Task Manager project! This repository contains a web application built with Django that allows users to manage tasks efficiently by creating, updating, assigning, and organizing them with labels and statuses. It supports user authentication, role-based permissions, and detailed task tracking.

Requirements:

To run this project, you need to have the following software installed:

  • Python >=3.10
  • Uv
  • Redis server (for Channels and Celery)

Preparation:

Create .env file with code kind of:

webserver=127.0.0.1

DEBUG=True

SECRET_KEY=secret_key
DATABASE_URL=sqlite:///database_name.db

DJANGO_SUPERUSER_USERNAME=superuser
DJANGO_SUPERUSER_EMAIL=superuser@example.com
DJANGO_SUPERUSER_PASSWORD=password

rollbar_token=rollbar_token
CHANNEL_USE_IN_MEMORY=0
CELERY_BROKER_URL=redis://127.0.0.1:6379/1
CELERY_RESULT_BACKEND=redis://127.0.0.1:6379/1
CELERY_TASK_ALWAYS_EAGER=1
CELERY_TASK_EAGER_PROPAGATES=1

Installation:

To set up the project, navigate to the project directory and run the following commands:

make install
make migrate

Local run:

make dev
# in separate terminals
make celery-worker
make celery-beat
# (optionally) make bot
# or run everything in one terminal
# (press Ctrl+C to stop all processes; launches bot if TELEGRAM_BOT_TOKEN is set)
make dev-all

Static files in production

  • The app reads STATIC_ROOT from the environment. If not set, it defaults to ./staticfiles.
  • Recommended on server:
    • Set in .env: STATIC_ROOT=/var/www/task-manager/staticfiles
    • Update Nginx: location /static/ { alias /var/www/task-manager/staticfiles/; }
    • Then run: uv run python manage.py collectstatic --noinput and reload Nginx.

Telegram bot

  1. Create the bot via BotFather and add the token to .env as TELEGRAM_BOT_TOKEN.
  2. Generate a personal access token on the /telegram/ page after logging in.
  3. Run the bot manually (make bot) or rely on make dev-all (if the token is set).
  4. In Telegram, send the generated token to the bot and use commands like /tasks, /complete <id>, /notifications.

API

  • Obtain a token via POST /api/auth/token/ with username and password.
  • Use the token in requests: Authorization: Token <token>.
  • Task endpoints available at /api/tasks/ (CRUD + POST /api/tasks/{id}/complete/).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published