Omstachu / naples

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Naples

Naples is a todo-list / note-taking application that allows user to organize and keep track of the things that are most important to them. It is a fullstack React App made with a Redux state manager and a backend using Javascript, Python, Flask, SQL-Alchemy, Heroku and PostgresSQL.

Table of Contents
1. Features
2. Installation
3. Technical Implementation Details
4. Future Features
5. Contact
6. Special Thanks

Technologies

Features

Sign In and Sign Up

Sign Up

Sign Up

Sign In

Login

Pages

Display all available lists that you've created and allows you to make as many extra lists as you would like.
Allows you to Edit the names of your Pages, and delete any Pages you no longer have any use for. Pages Page

Lists

Here you can Edit, Delete, and Create up to 4 different Lists per Page.
By having some "cost" associated with the value of space for the Lists you have, the intent is to force user to put more thought into the organizational framework of their notes instead of recklessly diluting their structure with uncapped list-making. Lists Page

Items

Here the user is able to create, edit, and remove items on their lists. Items

Installation

To build/run project locally, please follow these steps:

  1. Clone this repository
git clone https://github.com/Omstachu/naples.git
  1. Install Pipfile dependencies and create the virtual environment
pipenv install
  1. Install npm dependencies for the /react-app
cd react-app
npm install
  1. In the / root directory, create a .env based on the .env.example with proper settings

  2. Setup your PostgreSQL user, password and database and ensure it matches your .env file

  3. Before running any flask commands, confirm you are in the pipenv virtual env. If not, run the command:

pipenv shell
  1. In the root folder, you can apply the migration to the database
flask db upgrade

Each time the database models change repeat the migrate and upgrade commands.

flask db migrate
flask db upgrade
  1. In the root folder, seed the database by running in the terminal:
flask seed all
  1. Start the flask backend in the / root directory
flask run
  1. Start the frontend in the /react-app directory
npm start

Technical Implementation Details

This is one of my favorite moments in making this project.
Using a predefined array and string interpolation, each List received from the backend was assigned a class corresponding to the quadrant it should exist in on the user's screen.
Because the Lists are being dynamically iterated through, this also means that when the user deletes a List, the page will readjust the positions of each List by reassigning it's quadrant. Quadrants

CSS for Quadrant styling

Quadrants

Future Features

  1. Back Button - Allowing the user to easily navigate through the site without having to resort to the default browser button. Additionally it would allow a better user experience on mobile devices.

  2. Timestamps - Adding timestamps to when an item is create or edited should help with understanding the context of why you may have added a certain item.

Contact

Brandon Simpson

Linked In
GitHub
Email: omstachu626@gmail.com

Special Thanks

About


Languages

Language:Python 54.7%Language:CSS 40.9%Language:HTML 1.8%Language:Dockerfile 1.2%Language:Mako 1.0%Language:Shell 0.5%