Giter VIP home page Giter VIP logo

task-tracker-1's Introduction

Carpe Diem Task Manager - Project Portfolio 3 - Python

Carpe Diem Task Manager is a simple tool that helps people organize and track the tasks that need to be done in different aspects of life, for example, family, studies, work, etc..

Welcome to the live site here: Carpe Diem Task Manager

Contents

Objective

The aim of this project is to deliver a command line interface task manager so the user can track their to do list.

User Experience (UX)

Target Audience

  • Anyone who wants to track and manage all the tasks that need to be done.

User Stories

  • As a new user I want to easily understand how to use the system and how it can help me.
  • As a new user or returning visitor, I want to be able to easily navigate the system through the command line.
  • As a new user I want to be able to create a unique username, add tasks to the system, view saved tasks as well as delete tasks.
  • As a visitor returning, I want to be able to access the system through a unique username, add new tasks, retrieve previously saved tasks, as well as delete tasks.
  • As a new user or returning visitor, I want to be able to close the system easily when I finish using it.

Owner Stories

  • As the owner, I want to offer a system that is easy to use for both the new user and a visitor returning, and helps the user better organize what needs to be done in their daily lives.
  • As the owner, I want to ensure that the data entered is correct, valid and stored safely.

Back to top

Flowchart

Task Manager Flowchart

Back to top

Features

Welcome Screen

This is the welcome screen:

Welcome Screen

On this screen the user is asked to create a username:

Create a username

This is the screen that the user will see if the username choosen is already taken:

Username already taken

This is the welcome screen for the new user, when typed [1] Create a new task list:

Welcome screen new user screen

This is the welcome screen for the returning user, when typed [2] Access a saved task list:

Welcome screen returning user screen

This is the screen to add a new task, when typed [1] Add a new task:

Add a newtask screen

This is the screen to view saved tasks, when typed [2] View your saved tasks:

View saved tasks screen

This is the screen to delete tasks, when typed [3] View your saved tasks:

Delete a task screen

This is the screen to exit the system, when typed [4] to exit the task manager:

Exit the task manager screen

This is the Google Sheets database, where the data is stored and communicating with the task manager system.

Database Google Sheets screen

Back to top

Future Features

The Carpe Diem Task Manager can be improved in the future through new features to be developed and implemented:

Update task Status - A update task status feature is crucial so the user can update the task when completed. Due to time contrains it could not be developed.

Color design - a better color design and combinations to improve the user experience.

Login - for future development it would be nice to have a signup and login with password feature in order to have a secure way to access the system.

Typing function - a typing function/library to slow down the time the text is printed on the screen. It can be improved for a better user experience UX/UI.

Back to top

Testing

PEP8 validator

PEP8 Validator test result

Fixed bugs:

During the testing process, some minor errors were displayed when validating Python on PEP8, which were quickly corrected.

PEP8

Manual testing

The Carpe Diem Task Manager system has been econtinuously tested both on the Gitpod terminal and the Heroku deployed version on the browser. All tests made aimed to achieve the best user experience in system navigation, as well as the validity of data collected and stored on Google Sheets. So that the user can follow an intuitive and easy flow at all system contact points. Below are some examples of features tested manually.

Feature Expect Result
Run Task Tracker Display welcome screen Pass
New user press [1] Display welcome new user menu Pass
Returning user [2] Display returning user menu Pass
Invalid inputs Messages inputs not valid Pass
Add new task Requests inputs to be filled Pass
Store task sheets Add task on google shets Pass
Delete task Requests task code to delete Pass
Delete task sheets Delete task on google shets Pass
Save task Show saved tasks/Retrieve sheets Pass
Exit screen Display end screen when typed [4] Pass

Testing User Stories

Expectation Result
As a new user I want to easily understand how to use the system and how it can help me. The user can understand the system through the welcome screen.
As a new user or returning visitor, I want to be able to easily navigate the system through the command line. There user can navegate easily through the input buttons and options.
As a new user I want to be able to create a unique username, add tasks to the system, save tasks as well as delete tasks. The user can create a unique username, add, save and also remove tasks from the system.
As a visitor returning, I want to be able to access the system through a unique username, add new tasks, retrieve previously saved tasks, as well as delete tasks. The returning user can retrieve saved tasks, and also is able to add new tasks and also remove tasks from the system.
As a new user or returning visitor, I want to be able to close the system easily when I finish using it. The users can exit the system easily through the main menu .

Back to top

Technologies Used

  • Python - the main language of the application.
  • Gitbash - to push changes to the GitHub repository.
  • GitHub - to host the repositories.
  • Gitpod - as the IDE for the application.
  • Google Cloud - to create a project for the API.
  • Google Sheets - to store a database for the users tasks.
  • Heroku to deploy the project.
  • Lucid Charts - to create the flow chart.
  • PEP8 - for testing and validating the code.

Back to top

Deployment

This application was deployed using Heroku:

To deploy using Heroku, the steps below need to be followed:

  1. Ensure your requirements.txt file has the required dependencies. To do this you can use the following code in your IDE:

    pip3 freeze > requirements.txt

    • Heroku will use this file to import the dependencies that are required.
  2. Create or Login to your Heroku account.
  3. Navigate to Dashboard.
  4. Click "New" and select "create new app" from the drop-down menu. This is found in the upper right portion of the window.
  5. Provide a unique name for your application and select your region.
  6. Click "Create App".

New app image

Setting up the App within Heroku

  1. Navigate to "Settings" and scroll down to "build packs".
  2. Click "build packs" and then click both "python" and "node.js"(node.js is needed for the Code Institute mock terminal.)
  3. Ensure that the python buildpack is above the node.js buildpack, You can click and drag the packs to re-arrange them.

Heroku Buildpack Config Vars

App Deployment

  1. Navigate to the "Deploy" section.
  2. Scroll down to "Deployment Method" and select "GitHub".
  3. Authorise the connection of Heroku to GitHub.
  4. Search for your GitHub repository name, and select the correct repository.
  5. For Deployment there are two options, Automatic Deployments or Manual.
    • Automatic Deployment: This will prompt Heroku to re-build your app each time you push your code to GitHub.
    • Manual Deployment: This will only prompt Heroku to build your app when you manually tell it to do so.
  6. Ensure the correct branch is selected "master/Main", and select the deployment method that you desire.

Heroku deployment

To fork this repository on GitHub

A fork of this repository can be made which will allow you to make changes to this project without affecting the original repository.

The steps below should be followed to fork the respository:

  1. Log in to GitHub and find the repository.

  2. Click on the button fork on the right-hand side of the page to create a copy of the original repository in your GitHub account.

See the image below:

GitHub pages - to fork a depository

Back to top

To create a local clone of this project

The steps below should be followed to clone the respository:

  1. On the repository’s page, click on the code tab.
  2. On the Clone with HTTPS tab, click on the icon (see image below) to copy the URL.

Image to clone a repository

  1. Open Git Bash on your IDE terminal.
  2. Change the current working directory to the location where you want the cloned directory.
  3. Type git clone, and then paste the URL copied from GitHub.

Type: git clone + https://github.com/fmstacco/task-tracker.git

  1. Press enter and the local clone will be created.

Help on cloning a repository from GitHub can be found here.

Back to top

Python Libraries

  • colorama to print text to the terminal in different colours and styles.
  • gspread - to link the database spreadsheet with Google Sheets.
  • google.oauth2.service_account to import credentials and access to Google service accounts.
  • pandas - to display the tasks saved in a table format.

Credits

Back to top

Acknowledgements

Carpe Diem Task Manager was designed and developed for Portfolio 3 project, a requirement of Full Stack Software Developer Diploma Course (Eccommerce) at the Code Institute. I would like to thank my mentor Precious Ijege, my Cohort facilitator Kenan Wright, my Cohort colleagues, the Slack community, the Tutor Support and the Student care for all support during this journey. I am also thankful to the Mayo, Sligo and Leitrim Education Training Board (msletb) for this opportunity. I would also like to say thank you to my family, my husband Michel and, my children, Alanna, and Peter who is just 5 months old at the time of this project submission.

Fabiana Tacco (2022)

Back to top

task-tracker-1's People

Contributors

fmstacco avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.