Skip to content

b4oody/task-track-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

162 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Task Manager

Task Manager is a simple web application for task management. The app allows users to create, edit, delete tasks, work with teams, projects, and organize workflows.

πŸ–₯️ Deployment

The project is deployed on Render.

https://task-track-manager.onrender.com/

Pre-configured account for login:

  • πŸ”‘ Login: admin

  • πŸ”’ Password: Qw$rty123 Alternatively, you can register a new account.

    ⚠️ Important Information Please note that the website may experience downtime or instability due to issues with the hosting provider. We are working diligently to ensure stable operation and apologize for any inconvenience caused.

πŸš€ Technologies

The project is built using:

  • 🐍 Backend: Python + Django
  • πŸ—„οΈ Database: SQLite (local), PostgreSQL (server)
  • 🌐 Frontend: HTML, CSS
  • πŸ”„ Version Control: Git
  • πŸš€ Deployment: Render

πŸ”‘ Core Logic and Features

  • πŸ” Authentication and Authorization: Registration, login, password change, and reset via SMTP (Google).

  • πŸ‘€ User Profile:

    • πŸ“Š View productivity statistics: number of active tasks, projects, and completed tasks.
    • ✏️ Edit personal information, change password, and logout.
    • βž• Create new teams, projects, and tasks.
  • πŸ‘₯ Teams:

    • πŸ“‹ Team List: View all user-associated teams.
    • πŸ” Team Details:
      • πŸ› οΈ Edit team information.
      • βž• Add and ❌ remove team members.
      • πŸ“ Create projects for the team.
  • πŸ“ Projects:

    • πŸ“‹ Project List: Filter by status, create, and edit projects.
    • πŸ” Project Details:
      • πŸ“Š View project tasks.
      • βž• Add new tasks.
      • πŸ› οΈ Edit and ❌ delete project tasks.
  • βœ… Tasks:

    • πŸ“‹ Task List: Filter tasks by status, priority, team, and deadlines.
    • πŸ” Task Details:
      • πŸ“ View task status, priority, deadline, and description.
      • πŸ‘€ Assign task executors.
      • πŸ’¬ Add and ❌ delete comments.

🧩 Database Structure

Main tables:

  • πŸ‘€ Worker: system users (based on AbstractUser).
  • 🏷️ Position: user role in a team.
  • πŸ‘₯ Team: teams with associated members.
  • πŸ“ Project: projects related to teams.
  • βœ… Task: tasks with descriptions, priorities, deadlines, and assignees.
  • πŸ’¬ Commentary: comments for tasks.
  • πŸ”– TaskType: task types for categorization.

Database Structure

πŸ“¦ Installation

To run the project locally:

  1. Clone the repository:

    git clone https://github.com/your-username/task-manager.git
    cd task-manager
  2. Create a virtual environment:

    python -m venv venv
    source venv/bin/activate  # For Linux/Mac
    venv\Scripts\activate    # For Windows
  3. Install dependencies:

    pip install -r requirements.txt
  4. Configure environment: Create an .env file for configuration.

    # DB
     POSTGRES_DB=<db_name>                     # Name of the Postgres database
     POSTGRES_DB_PORT=<db_port>                # Port of the Postgres database
     POSTGRES_USER=<db_user>                   # Postgres database username
     POSTGRES_PASSWORD=<db_password>           # Postgres database password
     POSTGRES_HOST=<db_host>                   # Host for the Postgres database
     
     # If you do not wish to use Postgres, you can skip these fields and the application will use SQLite by default.
     
     # Django
     SECRET_KEY=<secret_key>                   # Mandatory: Secret key for Django
     DJANGO_SETTINGS_MODULE=<project.settings.prod/dev>  # Mandatory: Specify production or development settings
     RENDER_EXTERNAL_HOSTNAME=<domain>         # Optional: Domain name for external rendering
     
     # Django SMTP
     EMAIL_HOST_USER_SMPT=<admin@gmail.com>    # Optional: SMTP email address for admin
     EMAIL_HOST_PASSWORD_SMPT=<password>       # Optional: SMTP email password

    Note:

    • If POSTGRES_DB and related fields are not set, the project will fall back to using SQLite as the default database.
    • If EMAIL_HOST_USER_SMPT and EMAIL_HOST_PASSWORD_SMPT are not set, the website will still work, but password reset functionality will be disabled.
    • The SECRET_KEY and DJANGO_SETTINGS_MODULE are mandatory and must be provided for the application to run.
  5. Load database data (if needed):

    python manage.py loaddata dump.json
    • Data is taken from the fixture_data.json file in the root directory.
  6. Run the server:

    python manage.py runserver
  7. Open the application:

    • The server will run at http://127.0.0.1:8000

🧩 Project Structure

project-root/
β”œβ”€β”€ task_tracker_manager/  # Django configurations (urls, settings)
β”œβ”€β”€ taskhub/               # Application logic (models, views, utils)
β”‚   β”œβ”€β”€ migrations/        # Database migrations
β”‚   β”œβ”€β”€ management/        # Custom Django commands
β”‚   β”‚   β”œβ”€β”€ commands/      # Fixture loading commands
β”‚   β”‚       β”œβ”€β”€ load_fixture.py
β”‚   β”œβ”€β”€ admin.py           # Admin panel
β”‚   β”œβ”€β”€ apps.py            # App configuration
β”‚   β”œβ”€β”€ context_processors.py # Context processors
β”‚   β”œβ”€β”€ form.py            # Forms
β”‚   β”œβ”€β”€ models.py          # Database models
β”‚   β”œβ”€β”€ tests.py           # Testing
β”‚   β”œβ”€β”€ urls.py            # URL routing
β”‚   β”œβ”€β”€ utils.py           # Helper functions
β”‚   β”œβ”€β”€ views.py           # Request handlers
β”œβ”€β”€ templates/             # HTML templates
β”œβ”€β”€ static/                # CSS and static files
β”œβ”€β”€ fixture_data.json      # Database fixture data
β”œβ”€β”€ manage.py              # Django CLI
β”œβ”€β”€ db.sqlite3             # Local SQLite database
β”œβ”€β”€ requirements.txt       # Dependencies
β”œβ”€β”€ .env                   # Environment variables
└── README.md              # Project description

πŸ–ΌοΈ User Interface

Welcome Page

Welcome Page

User Profile

Profile Page

Update Profile

Profile Update

List of Teams

Teams List Page

Detail Team

Team Detail

Update Team

Team Profile

List of Projects

Projects List Page

Detail Project

Project Detail

Update Project

Project Update

List of Tasks

Tasks List Page

Detail Task

Task Detail

Update Task

Task Update

πŸ‘€ Author

Vladyslav Rymarchuk
GitHub | LinkedIn

About

This project is a Task Management System designed for an IT company to streamline team collaboration and organize workflows efficiently. Built with a Japanese minimalist design style, the system offers a clean and intuitive interface that enhances productivity and team alignment.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors