Skip to content

This project is a todo management app. The user can describe own todo status, todo and notify herself todo's in the desired status in certain periods. Here is a solution for this application using django, celery, celery-beat and rabbitmq in the backend.

Notifications You must be signed in to change notification settings

koksalkapucuoglu/track-and-notify_todo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

track-and-notify_todo

This project is a todo management app. The user can describe own todo status, todo and notify herself todo's in the desired status in certain periods. Here is a solution for this application using django, celery, celery-beat and rabbitmq in the backend.

Tech Stack

Core Tech: Python

Backend Service: Django, Django Rest Framework

Authentication: Basic Token, JWT Token

Database: Postgresql

API Documentation: Swagger

Task Management and Broker: Celery, Celery-Beat RabbitMQ, Redis

Task Monitoring: Flower

Run Locally using Docker

Clone the project

  git clone https://github.com/koksalkapucuoglu/track-and-notify_todo.git

Go to the project directory

  cd track-and-notifiy_todo

Build

  docker-compose build

Create local_settings.py and fill required fields

  mv local_settings.py.dev local_settings.py

Setup database tables by running migrations

  docker-compose run --rm app python manage.py makemigrations
  docker-compose run --rm app python manage.py migrate

Run project

  docker-compose up

Run Locally using environment

Clone the project

  git clone https://github.com/koksalkapucuoglu/track-and-notify_todo.git

Go to the project directory

  cd track-and-notify_todo

Create python env

  python -m venv env

Activate enviroment

  source env/Scripts/activate

or

  env\Scripts\activate

Install requirements

  pip install -r requirements.txt

Create local_settings.py and fill required fields

  mv local_settings.py.dev local_settings.py

Detect and apply django model changes

  python manage.py makemigrations
  python manage.py migrate

Create superuser to login Django admin panel

  python manage.py createsuperuser

Run django project

  python manage.py runserver

Project Screenshots

Notify Entries

  [
  {
    "id": 35,
    "status": {
      "id": 15,
      "code": "INPROGRESS",
      "name": "In Progress",
      "order": 2,
      "user": 35
    },
    "user": {
      "id": 35,
      "username": "screenshot",
      "email": "roheri8556@saeoil.com"
    },
    "minute": "36",
    "hour": "*",
    "day_of_month": "*",
    "month_of_year": "*",
    "day_of_week": "*",
    "title": "Get my in_progress tasks at 36 minutes of every hour"
  },
  {
    "id": 34,
    "status": {
      "id": 14,
      "code": "TODO",
      "name": "To Do",
      "order": 1,
      "user": 35
    },
    "user": {
      "id": 35,
      "username": "screenshot",
      "email": "roheri8556@saeoil.com"
    },
    "minute": "*/1",
    "hour": "*",
    "day_of_month": "*",
    "month_of_year": "*",
    "day_of_week": "*",
    "title": "Get my todo tasks each 1 minute"
  }
]

Task Monitoring

Task Monitoring

Email Content

Task Monitoring

Version Backlog

v0.4

  • Added project build documentation to help developers build the application

v0.3

  • Added email reminders to notify users about their tasks
  • Added the ability for users to configure the frequency of task reminders
  • Added the email notification design for better readability

v0.2

  • Added the ability for users to manage the status for their tasks (e.g. completed, pending, etc.)
  • Added a comprehensive todo management system for creating, viewing, updating, and deleting tasks

v0.1

  • Implemented login, registration, forgot password, and change password functionality for users
  • Added basic and JWT token-based user authentication for improved security
  • Added Swagger documentation to help developers understand the API endpoints and how to use them effectively
  • Added dockerization to make easier build the project

About

This project is a todo management app. The user can describe own todo status, todo and notify herself todo's in the desired status in certain periods. Here is a solution for this application using django, celery, celery-beat and rabbitmq in the backend.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages