/Task-Manager-Project

An application built to solve the problem of missed assignments and duplicate effort when tasks are sent via email.

Primary LanguagePython

TrackThat is an application built to manage your emails and improve collaboration between teams without the need to use multiple external trackers. Users can view their email after logging in with Gmail and start creating tasks for important emails. Users have the ability to share it with teams on their slack channels notifying their teams when tasks are created, completed as well time of completion. TrackThat will maintain and display all tasks that have been created with the ability to easily search through tasks.

Table of Contents

Technologies

Backend: Python, Flask Frontend: JavaScript, jQuery, AJAX, Jinja2, Bootstrap, HTML5, CSS3 Database: PostgreSQL, SQLAlchemy API: Gmail Other: Slack Incoming Webhook

Features

Sign in with Gmail, where user authenticates and authorizes TrackThat to access their inbox. This is handled through Gmail's OAuth 2.0. This is done by first obtaining the OAuth credentials from Google's developer's console. TrackThat additionally obtains an access token from Google's Authorization server, sending the acces to Gmail API's in regards to the readonly scope. For more information, please see Google's API documentation.

####Inbox Upon access, user is directed to the inbox page where they can view and read all of their emails as well as view the status of a tracked or untracked email.

####Email Message Users can then click on an important email which displays the body of the message on the same page as the inbox using Javascript, jquery, and AJAX to maintain the integrity of the html.

####Create Tasks Users can then create tasks for important emails by filling in the task-related information in the modal. If the task needs to be shared with your team on Slack, just check the box and submit for automated notification to your team.

Immediate notification to team when task is shared and modal is submitted. This is done by sending a post ajax request to Slack using their incoming webhook.

####Task List & Search Engine User is then redirected to the task list page where all tasks that were created are displayed by querying my postgres database.

The search engine uses a SQLAlchemy-searchable library to do a full-text search on the task name in my flask server.

####Automated Slack notification for completed tasks

Installation

To have this app running on your local computer, please follow the below steps:

####Prerequisite

  • Install PostgreSQL (Mac OSX).
  • Python 2.6 or greater.
  • A Google account with Gmail enabled.

Clone repository:

$ git clone https://github.com/TiyaBelay/Task-Manager-Project

Create a virtual environment:

$ virtualenv env

Activate the virtual environment.

$ source env/bin/activate

Install dependencies.

$ pip install -r requirements.txt

To enable the Gmail functionality, you should create your project in the Google Developers Console.

Run PostgreSQL (see the elephant icon active).

Create database with the name 'taskmanager'.

$ createdb taskmanager

$ psql taskmanager

To run the app from the command line of the terminal, run

$ python server.py

If you want to use SQLAlchemy to query the database, run in interactive mode

$ python -i server.py

Version 2.0

Further development includes:

  • Allow multiple users
  • Integrate with Outlook
  • Include attachments in emails to share on Slack
  • Integrate with Slack API and OAuth
  • Testing