In this project, I built the back-end side of a tracking application that allows you to track your daily tasks. This project was built following the specifications and user stories given here: Click here to read the projects specifications
- About the project
 - Built with
 - API documentation
 - API Endpoints
 - API URL
 - Fullstack App live demo
 - Front-end side
 - Dependencies
 - Linting tools
 - Getting started
 - Automated tests
 - Author
 - Contributing
 - Acknowledgments
 - License
 
Full documentaion for this API here!
This API provides the following Endpoints:
| RESTful Endpoint | Description | 
|---|---|
| POST /api/v1/signup | Signup of a new user | 
| POST /api/v1/login | Login a registred user | 
| DELETE /api/v1/logout | Logout a logged in user | 
| GET /api/v1/users/:id | Get a user profile | 
| POST /api/v1/routines | Create a new routine | 
| GET /api/v1/routines/:id | Get a routine's details | 
| GET /api/v1/allroutines | Get all routines names to be selected for the creation of a task | 
| DELETE /api/v1/routines/:id | Destroy a routine | 
| GET api/v1/tasks | List of all user's tasks | 
| POST /api/v1/tasks | Create new task | 
| GET /api/v1/tasks/:id | Provides task details | 
| DELETE /api/v1/tasks/:id | Destroy task | 
| GET /api/v1/alltasks | Get all tasks names to be selected for the creation of a measurement | 
| POST /api/v1/mesurements | Create new mesurement | 
https://task-n-track.herokuapp.com/
Check here the link to the deployed full-stack App
- Check the GitHub repository of the front-end side of the project here!
 - Check the deployed version of the front-end side of the project here!
 
The main dependencies used in this web application:
| Dependency | for | Development | Test | Production | 
|---|---|---|---|---|
| Rails | Ruby based server-side web application framework | ⭐️ | ⭐️ | ⭐️ | 
| Postgresql | Database | ⭐️ | ⭐️ | ⭐️ | 
| rspec-rails | A testing framework for Rails | ⭐️ | ||
| factory_bot_rails | A fixtures replacement | ⭐️ | ||
| shoulda-matchers | Simple One-Liner Tests for Rails | ⭐️ | ||
| database_cleaner | Strategies for cleaning databases in testing | ⭐️ | ||
| faker | Generates fake data for testing | ⭐️ | ||
| bcrypt | A secure hash algorithm for hashing passwords | ⭐️ | ||
| devise | Flexible authentication solution for Rails based on Warden | ⭐️ | ⭐️ | ⭐️ | 
| devise-jwt | Implementation of the RFC 7519 OAuth JSON Web Token standard | ⭐️ | ⭐️ | |
| rack-cors | Support for Cross-Origin Resource Sharing for Rack compatible web apps | ⭐️ | ⭐️ | |
| Jsonapi-rails | Rails helper for api resources serialization | ⭐️ | ⭐️ | |
| Cancancan | Rails helper for authorisation management | ⭐️ | ⭐️ | 
| Linter | Use | Files | 
|---|---|---|
| Rubocop | Linting Ruby files | .rb | 
To get a local copy of the repository, please run the following commands on your terminal:
$ git clone [email protected]:CalyCherkaoui/task-tracker-backend-api.git
$ cd TaskAndTrack-backend-api
$ git branch feature
$ git checkout feature
Ruby: 2.6.6 Rails: 6.0.4
Run your Postgresql service in your terminal:
$ sudo service postgresql restart
Install gem dependencies:
$ bundle install
Setup the database:
$ rails db:create
$ rails db:migrate
$ rails db:seed
Run Rails server:
$ rails s
In the browser, open http://localhost:3001
To lint Ruby code:
$  rubocop -A
To run the tests:
$  bundle exec rpsec
👤 Houda Cherkaoui
- Github: @CalyCherkaoui
 - Twitter: @Houda59579688
 - Linkedin: Houda-Cherkaoui
 
Contributions, issues, and feature requests are welcome!
Give a ⭐️ if you like this project!
- Hat tip to stackoverflow comunity.
 - Hat tip to Microverse TSE for Code Review.
 - Hat tip to anyone whose code was used
 - deployement tuto
 
All source code is available jointly under the MIT License. See MIT licence for details.
