Skip to content

CalyCherkaoui/task-tracker-backend-api

Repository files navigation

Task & Track | Backend API

About the project

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

Built with

Ruby Rails postgresql GitHub

Table of content

API documentation

Full documentaion for this API here!



API Endpoints

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

API URL:

https://task-n-track.herokuapp.com/

Fullstack App live demo

Check here the link to the deployed full-stack App

Front-end side

Dependencies

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 ⭐️ ⭐️

Linting tools

Linter Use Files
Rubocop Linting Ruby files .rb

Getting started in development

Clone the repository:

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

Prerequisites:

Ruby: 2.6.6 Rails: 6.0.4

Run your Postgresql service in your terminal:

$ sudo service postgresql restart

Setup:

Install gem dependencies:

$ bundle install

Setup the database:

$ rails db:create
$ rails db:migrate
$ rails db:seed

Usage:

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

Automated tests

Unit tests series:



Request tests series:



Author

👤 Houda Cherkaoui

Contributing

Contributions, issues, and feature requests are welcome!

Show your support

Give a ⭐️ if you like this project!

Acknowledgments

📝 License

All source code is available jointly under the MIT License. See MIT licence for details.

Releases

No releases published

Packages

No packages published