This RESTful API serves the Everyday Heroes App.
Repository for the front-end web app is here
Everyday Heroes uses the vocabulary of online gaming in order to encourage users to improve their lives and the community around them. Users complete quests, gain experience points, and level up over time by practicing the daily habits outlined in the program. Your progress through the program is measured by the practice of Five Heroic Habits: Focus, Power, Balance, Treasure, and Tribe. Each day, users are assigned small, actionable tasks which improve your ability in each of the heroic habits. Our goal is to improve the world by beginning with ourselves. We can be better husbands, wives, and parents. We can be more productive employees. We can contribute more to our communities. We can take better care of our bodies. We can allow space for our own mental well-being. All of these things are possible! By taking small, measurable actions every day, we will--in time--become the heroes we were meant to be.
This project was built using Ruby on Rails to create a RESTful API, utilizing bcrypt and JSON Web Token for secure user authentication.
Stack Layer | Technology Used |
---|---|
Database | Postgresql |
API | Ruby on Rails |
Web Front-end | React |
Table Relations
A User belongs to one Tribe
A Tribe has many Users
A User belongs to one Level
A Level has many Users
A User has many Daily Tasks
A Daily Task belongs to many Users
A User has many Challenges
A Challenge belongs to many Users
A Challenge belongs to one Level
A Level has many challenges
A Challenge belongs to one or many Heroic Habits
A Heroic Habit has many challenges
A Daily Task belongs to one Level
A Level has many Daily Tasks
A Daily Task belongs to one Heroic Habit
A Heroic Habit has many Daily Tasks
Lean JSON responses based on this tutorial by Collin Schaafsma.
Secure user authentication for a stateless (RESTful) API based on this tutorial by Hristo Georgiev