Skip to content

Tapeline/Taskstorm

Repository files navigation

Taskstorm Logo

Taskstorm - A universal and collaborative task-tracker. (Deployed application, currently down)

GitHub License GitHub Actions Workflow Status GitHub Issues or Pull Requests Website

Features

  • Workspace system to separate tasks for different projects
  • Task tags and categories
  • GitLab-style tag filtering for tasks
  • Workflow stages to differentiate readiness statuses
  • Customizing task list that should be notification targets
  • Auto-closing tasks that are moved to stage that counts as finish
  • Commenting tasks
  • GitLab-style activity list in tasks
  • GitHub-flavored Markdown in task descriptions and comments
  • Kanban board
  • Documents with live collaborative rich-text editing
  • Calendar for user's tasks
  • Statistics in profile
  • Task recommendation
  • Notification caching (sort of)

Upcoming:

  • Linked and child tasks

Deploying

Requirements

  • Docker (w/ Docker Compose)

Running

Taskstorm is using Docker Compose for deployment, so you can just clone this repo and start containers:

git clone https://github.com/Tapeline/Taskstorm.git
cd Taskstorm
docker compose up -d

Except you should provide SSL certificate and then access web interface via standard 443 browser port.

Do not forget to provide environment variables:

  • VAPID_PRIVATE - VAPID private key. It is needed for webpush notifications to work properly.
  • SECRET_KEY - API secret key (signing JWT, etc.)

Also head to frontend/src/api/common.jsx and change the return value of getPublicVAPID() to your public VAPID key. [didn't figure out yet how to access environment variables on Vite build. I'm a backend developer, after all :(]

Providing SSL certificate

SSL certificate files should be placed in ~/sslcert/ directory. For example, using a LetsEncrypt cert:

~/
|- sslcert
   |- fullchain.pem
   |- privkey.pem

Attention! Taskstorm is configured to use exactly these file names. If they differ, you can:

  1. Rename them
  2. Create a symbolic link with other name
  3. Configure Nginx service in docker-compose.yml to use different files

Launching without SSL certificate (local only)

If you want to test Taskstorm on your machine, you might not want to provide SSL cert. In this case, you can use this command:

docker compose -f docker-compose.yml -f docker-compose.local.yml up -d

Docs

Link to docs

Tech stack

Backend

Django DRF (Django Rest Framework) Celery RabbitMQ Redis Django Channels Postgres

Frontend

React.js Vite Bootstrap

Other

Nginx Docker

Screenshots

Developer

Project is being developed by @Tapeline

License

This work is licensed under GNU General Public License v3.0