Skip to content
/ MenTool Public
forked from DanMorriss/MenTool

[Python | JavaScript | Django | Bootstrap | jQuery | PostgreSQL] MenTool, a FullStack project for a simple way of tracking your mood whenever you want to.

Notifications You must be signed in to change notification settings

tomdu3/MenTool

 
 

Repository files navigation

MenTool

By Mind Menders Developers : Dan Morriss, Agy Luczak, Tomislav Dukez, Ben Gilbert, Jamie Phelps and Stanley Owanta

MenTool Logo

Website Link

Table of Content

  1. Project Discription
  2. Project Goals
    1. User Goals
    2. Site Owner Goals
  3. User Experience
    1. Target Audience
    2. User Requrements and Expectations
    3. User Stories
  4. Design
    1. Design Choices
    2. Colour
    3. Fonts
    4. Wireframes
  5. Technologies Used
    1. Languages
    2. Frameworks & Tools
  6. Features
    1. Existing Features
    2. Future Features
  7. Testing
    1. Contrast Validation
    2. HTML Validation
    3. CSS Validation
    4. Accessibility
    5. Performance
    6. Device testing
    7. Browser Compatibility
  8. Bugs
  9. Deployment
  10. Credits
  11. Acknowledgements

Project Description

This is MenTool, just a simple way of tracking your mood whenever you want to. It’s completely anonymous, all data here is just for you to see how you’re getting on. At MenTool we understand that sharing moods and feelings with others can be difficult so we’re providing users with a way of simply recording them. You can then view the data and see how things are changing, for better or worse, over time. This might help you become more aware of how you are feeling about yourself, relationships, the wider world and more or it might just be an interesting thing to look at - ‘This week I was OK for more days than I was sad’ or ‘That was a great week, only one down day!”. We’re not going to suggest changes, hint at trends or anything else, just allow you to observe how you feel day by day. It’s so easy to use, just a couple of clicks a day or whenever you want too.

Project Goals

User Goals

  • To be able to track moods
  • To see previous mood patterns
  • To be able to create an account
  • To be able to log in and out

Site Owner Goals

  • To help users track their moods
  • To help users realise what sort of mood they are in
  • Provide an account feature for users to keep thier infomation safe

User Experience

Target Audience

  • Users who want to start tracking their feelings
  • Users who want to continue to track their feelings
  • Users who want to use a login in

User Requrements and Expectations

User Stories

First Time User

  1. As a first time user, I want to be able to track my mood
  2. As a first time user, I want to be able to create an account
  3. As a first time user, I want to be able to navigate the app easily

Returning User

  1. As a returning user, I want to be able to continue the track my mood
  2. As a returning user, I want to be able to see my mood history
  3. As a returning user, I want to be able to log into my account
  4. As a returning user, I want to be able to find out about mental health sites
  5. As a returning user, I want to be able to find out who built the app

Website Owner

  1. As the App owner, we want users to find informantion about mental health
  2. As the App owner, we want users to be able to track thier moods
  3. As the App owner, we want users to find out about the devs who built the site

Design

Design Choices

Font Awesome

  • Login

login icon


* User

user icon


* Stats

chart icon


* Brain for track your mood?

track your mood icon


* Logout

logout icon


* Home

home icon


* About us

about us icon

about us icon footer


Mood Icons

Very Happy Happy Meh Sad Very Sad

Colour

This colour palette combines deep navy blue (#010A26), dark teal (#224040), soft off-white (#EBF2F2), olive green (#595542), and light taupe (#BFBAAA) to create a harmonious and balanced aesthetic. We chose these calm, earthly colours to reflect the app's purpose of tracking and reflecting on emotional states.

Colours

Background

Fonts

Audiowide, with its modern and tech-forward appearance, was used for headings to give the app a contemporary and professional look. In contrast, Quicksand, with its more approachable and readable style, was applied for body text, ensuring that longer texts are easy on the eyes and pleasant to read. The combination of these two fonts balances a modern, tech-forward look with approachability and ease of use, aligning well with the app’s purpose and its target user base.

Audiowide Font

Audiowide

Quicksand Font

Quicksand

Wireframes

Landing Page
landing page wireframe
About Us
about us page wireframe
Account Home
account home page wireframe
Create Account and Login Page
login and account page wireframe
Analytics
analytics page wireframe

Link Validation Gifs

About US
about us page links gif
Login
login page links gif
Mood
mood page links gif
Navbar
navbar links gif
Sign up
signup page links gif

Database Design

Database design was made with QuickDBD. The database is hosted on ElephantSQL and is a PostgreSQL database.

Database Diagram
QuickDBD Database Design

Technologies Used

Languages

  • HTML
  • CSS
  • JavaScript
  • Python

Frameworks & Tools

  • GitHub
  • Bootstrap
  • Balsamiq
  • Google Fonts
  • Font Awesome
  • Favicon.io
  • Django
  • Heroku
  • Jquery
  • Crispyforms
  • Cloudenary
  • Elephant sql
  • Peak

Features

Existing Features

Mood Tracker

The mood tracker allows the user the tracker their mood on the app by clicking on the relivant icons

User stories covered: 1, 10

Account

The account feature allows the user to login and out of the app keep their data secure

User stories covered: 2, 4, 6

Mood Analytics

The mood analytics feature allows the user to be able to keep a record of the moods that they've inputed in the mood tracker

User stories covered: 5

GitHub Profile Link

The Github profile link allows the user to see the acounts of the devs that built the app and see their other work

User stories covered: 8, 11

Navbar

The navbar allows the user to navigate around the app

User stories covered: 3

Footer

The footer links back to the about us page which details the devs involved with the app

User stories covered: 8, 11

Validation

I put my website through the following validation tools:

Contrast Validation:

Account Page
acount page contrast
Landing Page
landing page contrast
Login Page
login page contrast
Signup Page
signup page contrast

HTML Validation:

All good

CSS Validation:

Validation
css validation

Performance:

About us Lighthouse
lighthouse about us
Landing Page Lighthouse
lighthouse landing page
Login Lighthouse
lighthouse login page
Signup Lighthouse
lighthouse signup page

Device testing

Iphone Mac Linux Windows

Browser Compatibility

Chrome Firefox Edge

Bugs

Bug Fix

Deployment

Local Deployment

In order to make a local copy of this project, you can clone it. In your IDE Terminal, type the following command to clone the repository:

  • git clone https://github.com/DanMorriss/MenTool.git

If done locally, the virtual environment needs to be created and activated. To do so, in your IDE Terminal, type the following commands:

python3 -m venv venv

If on Linux/MacOS, type the following command for activation:

source venv/bin/activate

On Windows type the following command for activation:

venv\Scripts\activate

Alternatively, if using Gitpod, you can click below to create your own workspace using this repository.

Open in Gitpod


After cloning or opening the repository in Gitpod, you will need to:

  1. Create your own .env file in the root level of the project:
SECRET_KEY=[your_secret_key]
DEBUG=True
DATABASE_URL=postgres://[username]:[password]@[host]:[port]/[database_name]
CLOUDINARY_URL=cloudinary://[api_key]:[api_secret]@[cloud_name]

**Ensure the .env file is added to your .gitignore file so it doesn't get pushed to a public repository.

If you don't have a Cloudinary account already, you will need to Sign Up for Free to host the static files in the project.

  1. Run pip3 install -r requirements.txt to install required Python packages.

  2. Setup the SQL database. In this project, PostgreSQL on ElephantSQL and put the details in the .env file.

  3. Migrate the database models using: python3 manage.py migrate

  4. Create a superuser with your own credentials: python3 manage.py createsuperuser

  5. Run the Django sever: python manage.py runserver The address of the server will appear in the terminal window. Add /admin to the address to access the Django admin panel using your superuser credentials.

Heroku Deployment

Sign up to Heroku for free if you don't already have an account.

  1. Create a new app in Heroku.

  2. In the Resources tab of your app in the Heroku dashboard, click Add-Ons and select Heroku Postgres. Select Hobby Dev - Free as your plan.

  3. When Heroku Postgres is installed, click the Settings tab in the Heroku Dashboard. Click Reveal Config Vars, and add the same variables from your .env file here, except for DEBUG, as you don't want debug mode on the deployed project.

  4. Insert the SECRET_KEY, DATABASE_URL and CLOUDINARY_URL to the Config Vars.

  5. Create a file called Procfile (no extension) containing the following:

web: gunicorn mentool.wsgi
  1. Add the url of your Heroku app ('https://mentool-2af96fd6f7e7.herokuapp.com') to your settings.py file:
ALLOWED_HOSTS = [
    'https://mentool-2af96fd6f7e7.herokuapp.com',...
]
  1. Disable collect static so that Heroku doesn't try to collect static files when you deploy by adding the following to your Heroku Config Vars in the Settings tab of Heroku dashboard:
DISABLE_COLLECTSTATIC=1

The same variable has to be removed from Heroku Config Vars when you want to collect static files (for the testing and final deployment).

  1. Stage and commit your files to GitHub
git add . 
git commit -m "Commit message"
git push
  1. In the Heroku dashboard for your App, select Deploy. Under Deployment Method, choose GitHub and search for your repository and click Connect.

  2. Select Enable Automatic Deployments, and then Deploy Branch. Heroku will build the App from the branch you selected.

  3. Now whenever you push your commits to GitHub, Heroku will rebuild the application.

Forking the GitHub Repository

The project can be forked in order to make a copy of the original repository and propose changes to the project owner using Pull Requests. That can be done by following these steps: First, log in to GitHub and locate the Project's Repository. At the top of the Repository, on the right side of the page, locate the "Fork" button. A copy of the Repository should now be in your GitHub account. You can now propose changes to the Repository by creating a Pull Request.

Live deployment

The web site is deployed on Heroku and can be found here.

Credits

The AMAZING team Mind Menders! Everyone is the team worked fantasticly well together and made the hackathon a fantastic event to be apart of!

Dan - Our fearless leader who kept us on track all week Tom - Our resident Yoda helping with all backend issues and deployment Ben - Our middion guidrnce councilor, keeping the project ideals together at all time. Agy - Our front end magician, making our site look pretty at seeing things the rest of us missed. Jamie - Our cleaning master, picking up everything gets the rest of us miss and keeping us on track. Stanley - Our backend guru who unforunately missed out on the in person day from missing his flight

About

[Python | JavaScript | Django | Bootstrap | jQuery | PostgreSQL] MenTool, a FullStack project for a simple way of tracking your mood whenever you want to.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 56.3%
  • Python 22.3%
  • CSS 11.2%
  • JavaScript 5.1%
  • Dockerfile 3.6%
  • Shell 1.5%