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.