Skip to content

epohs/happy-days

Repository files navigation

Happy Days

Keep track of your mindset

The goal of this project is to walk you through setting up and hosting a database driven website on a Raspberry Pi in your home. The site will be driven by Python, served by nginx, and will allow you to point your own domain name at the site using CloudFlare DNS.

The website in this project will let you keep track of how you feel on any given day, and see those days tracked in a graph. Hopefully giving you a better idea of the patterns of your mood and what you can do to stay happy more of the time.

Software and services used in the project

  • Flask
    • Python based framework, used for the programming back-end.
  • Sqlite
    • Database system to store.. well all of your data.
  • Gunicorn
    • Lightweight web server, used to handle our Flask application.
  • Supervisor
    • Keeps Gunicorn running in case of a crash, or you reboot your Pi.
  • Nginx
    • Nginx is a web server that adds speed, security and reliability.
  • Let's Encrypt
    • Free SSL Certificates to keep your site secure with HTTPS.
  • Cloudflare
    • Free DNS hosting so that you can point your domain name at your Pi, and have the DNS automatically updated if your home's IP address changes.

Installation

  1. Install the newest Raspberry Pi OS on your Pi.
  2. Log into your Pi and create a home for your project. I created a Folder called Sites in my home directory.
  3. cd into your new directory and clone this repo.

To-Do

  1. Next/Prev buttons in list view
  2. Better HTML Markup
  3. Date labels on dashboard graph
  4. Custom form errors in HTML
  5. Display dynamic slider values
  6. Account management page
  7. Fontello icons for nav
  8. CSS Styling
    1. Form field styling
    2. Colors and styling on New Entry page
    3. Style list view
  9. Change created_on to created_at and modified_on to updated_at
  10. Create migration for this
  11. Code cleanup and documentation
  12. Project documentation in Git

Helpful links