Skip to content

A Flask-based collaborative task board featuring secure user authentication, role-based access control, and multi-criteria search

Notifications You must be signed in to change notification settings

jschhie/Task-Mate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Task Mate | A collaborative team task board 📅


Tech Stack

Component Tech Used
Backend Python, Flask
Data SQLite, SQL
Frontend Logic JavaScript, Jinja Templating
UI/Styling Bootstrap
Deployment PythonAnywhere

Overview

  • Flask-based dashboard for sharing and scheduling custom tasks
  • Features include:
    • Create, modify, delete, bookmark, group, and un/hide tasks
    • Share task groups with other users for seamless collaboration
    • Add, remove, or update access modes ('Editor' or 'Viewer') for each team member
    • User authentication (login, logout, registration) and filtered search functionality
    • Uses a relational SQLite database for data management
    • HTML templates rendered using Jinja, with a styled interface built using CSS, JavaScript, and Bootstrap

Table of Contents


Visual Demo

Home Page

Below is lisa123's dashboard of grouped, shareable tasks

Home Page with Sample Groups

Share Group: Add Members

Here, lisa123 is the owner of this group

Share Group / Add Members

Group Member View -- Editor Access Mode

ryan123 is a member of lisa123's group with editor access mode

Group Member View: Editor Access Mode

Updating Task as a Group Member

ryan123's updates to tasks in lisa123's shared group will be reflected for everyone in that group, including jimmy2020

Updated Task as Group Member

Group Member View -- Viewer Access Mode

In this example, ryan123 is a member of lisa123's group with viewer access mode

Group Member View: Viewer Access Mode

Option to Leave Group

jimmy2020 can optionally leave any shared group

Updated Task as Group Member


Running the App Manually

1. Clone this repository:

git clone https://github.com/jschhie/Task-Mate.git [folderNameHere]

2. Navigate into the folder:

cd [folderNameHere]

3. Create and activate virtual environment (venv):

  • This project assumes you have python v3.11 or higher
  • To isolate the project's dependencies:
/usr/local/bin/python3.11 -m venv venv
source venv/bin/activate

4. Install the required packages:

pip3 install -r requirements.txt

5. Configure environment variables

5a. Create a .env file in the root directory:

vim .env

5b. Open the .env file and define the following:

FLASK_SECRET_KEY=any_random_string_here

6. Run the Flask app:

python3 main.py

The user can then access and interact with the web app at http://127.0.0.1:5000/ via any web browser.