Habit Stack is an application that aims to help users build habits that stick through repetition and reward.
- JavaScript
- HTML/CSS
- Node.js
- MySQL & the Sequelize ORM for the database
- Handlebars.js as the template engine
- MVC paradigm folder structure
- Open Source Chart Image API
- Heroku & ClearDB for Deployment
- npm Dependencies
- bcrypt: A library to help you hash passwords.
- connect-session-sequelize: A SQL session store using Sequelize.js.
- dotenv: This package is a zero-dependency module that loads environment variables from a .env file into process.env. This will help keep your sensitive info [ie passwords] hidden from open source platforms.
- express: The webserver framework for Node.js
- express-handlebars: A view/template engine for Express.js
- express-session: An HTTP server-side framework used to create and manage a session middleware.
- mysql2: Establishes a connection to the database via Node.js
- sequelize: Establishes communication with a MySQL database.
If you want to learn more about any of these npm packages, click here.
To install this application, you will need to clone the repo and run a few commands in the terminal.
npm init
followed bynpm install
- Then, install the npm packages:
npm install express mysql2 sequelize dotenv express-session connect-session-sequelize express-handlebars bcrypt
- Make sure to fill out the
.env.EXAMPLE
file with your sensetive login credentials, and rename the file to.env
- Make sure to fill out the
- Next, enter your mySQL db
source schema.sql
from the /db directory. - Seed the data by entering
npm run seed
. - Lastly, start the server via the root directory by entering
npm run start
.
At this time, no tests have been documented for this application.
- Ability to set up daily or weekly SMS:calling: reminders :alarm_clock: via API (ie: Twilio).
- Connect and communicate with other users to send an encouraging:trophy:(or sarcastic:performing_arts:) message.
- Gameify:video_game: with a build-on animation that the user will activate/add:jigsaw: pieces to their end product as entries are marked complete.:framed_picture: