This REST API was built with Ruby on Rails, and Postgres for the databases as the final project at Microverse. With this API, records (measurements) and items (things to measure) can be added, edited, and removed manually interacting with the database in the front-end application.
Please check how this API work in the Tracking App with React which is the front-end application built with React, corresponds to this API.
- The database has 3 tables and models for User, Item, and Record
- Users table has username, password, and admin(boolean) columns
- Items table has title, unit, icon, and target columns
- Records table has date, result, item_id, and user_id
- To authorize users, this app uses JWT and Rack-cors
A list of commonly used resources that I find helpful is listed in the acknowledgments.
To get a local copy up and running follow these simple example steps.
- On the project GitHub page, navigate to the main page of the repository.
- Under the repository name, locate and click on a green button named
Code
. - Copy the project URL as displayed.
- If you're running the Windows Operating System, open your command prompt. On Linux, Open your terminal.
- Change the current working directory to the location where you want the cloned directory to be made. Leave as it is if the current location is where you want the project to be.
- Type git clone, and then paste the URL you copied in Step 3.
e.g. $ git clone https://github.com/yourUsername/yourProjectName - Press Enter. Your local copy will be created.
- To install all dependencies and necessary gems and node packages
bundler install
yarn install
- Run
rails db:setup
- Run
rails server
to run rails application in your local server - Run
rspec
to run rspec tests
-
Go to puma.rb in config/initializers, and rewrite the port from 3000 to 3001 like below: e.g.
port ENV.fetch("PORT") { 3001 }
-
Go to cors.rb in config/initializers, and rewrite the origins path for your frontend path in both local and production
- To manage records and items, it needs to log in with a username and a password. Then, you need to include a token, which is issued and passed by logged in, in the header when interacting with this API like below:
headers: { 'Content-Type': 'application/json', Authorization:
Bearer ${token}, },
- Plus, to manage items, it needs to log in with the user account with the admin: true
๐ค Pacifique Linjanja
- GitHub: @pacyL2K19
- Twitter: @PacifiqueLinja1
- LinkedIn: Pacifique Linjanja
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Give a โญ๏ธ if you like this project!
"Bodytrack.it " design idea by Gregoire Vella is licensed under Creative Commons license of the design.