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 git@github.com: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.
