Skip to content

SpotMe is a 10-day, 6 person project, during Mod 3 of 4 for Turing School's Back End Engineering Program.

Notifications You must be signed in to change notification settings

tvaroglu/spot_me_backend

Repository files navigation

Version Contributors Forks Stargazers Issues Ruby Style Guide Build SpotMe

This is the back-end architecture of the SpotMe application, which exposes resources for the fitness application front end by consuming the Google OAuth 2.0 and Yelp APIs. Google OAuth allows the app to authorize users and retrieve data, such as their name, email address, zip code, Google ID, Google image URL, and Google token. The incorporation of the Yelp API allows users to search for gyms in their local area based on their zip code.

SpotMe allows users to:

    🏋🏽   Search for gyms in their local area 🏋
    🏋🏽   Add gyms to their account 🏋
    🏋🏽   Search for SwoleMates that have gyms in common 🏋
    🏋🏽   Add/delete SwoleMates as friends 🏋
    🏋🏽   Schedule/delete workout sessions with SwoleMates 🏋

Contributors

Brian Fletcher Caroline Tan Ezzedine Alwafai Gunnar Runkle Scott Borecki Taylor Varoglu
GitHub GitHub GitHub GitHub GitHub GitHub
LinkedIn LinkedIn LinkedIn LinkedIn LinkedIn LinkedIn

Table of Contents

Links
Tools Used
Project Overview
Learning Goals
Database Schema
Endpoints

Tools Used

Development Development Testing Deployment
Ruby 2.7.2 Atom RSpec for Rails Heroku
Rails 5.2.6 GitHub Webmock CircleCI
Pry Git VCR
PostgresQL HTML5 SimpleCov
Postico CSS3
OmniAuth Google OAuth2 Rubocop
Faraday FactoryBot
Figaro
Postman

Project Overview

This project was developed by Brian Fletcher, Caroline Tan, Ezzedine Alwafai, Gunnar Runkle, Scott Borecki, and Taylor Varoglu during Mod 3 of Turing School's Back End Engineering Program.

Created from scratch and deployed to Heroku in a short period of 10 days, this project consists of a Ruby on Rails web application utilizing a service-oriented architecture. The front-end and back-end applications were both built in Rails. The front end communicates with the back end through an API. The back-end application houses the application database, authenticates users with Google OAuth 2.0, and consumes a third-party Yelp API.

The project description and base requirements can be found here

Learning Goals

    ⭐     Create a project with a separate front-end and back-end
    ⭐     Use Rails to create web pages that allow users to CRUD resources
    ⭐     Use an external OAuth provider to authenticate users
    ⭐     Build APIs that return JSON responses
    ⭐     Consume two or more external APIs which require authentication
    ⭐     Create instance and class methods on a Rails model that use ActiveRecord methods and helpers
    ⭐     Write model and feature tests that fully cover data logic and potential user behavior
    ⭐     Implement a self-referential relationship in ActiveRecord
    ⭐     Utilize Continuous Integration via CircleCI
    ⭐     Deploy to Heroku
    ⭐     Implement a production-quality user interface using Bootstrap or other common CSS styling framework
    ⭐     Implement agile project management via Kanban boards, daily stand-ups, and team retros
    ⭐     Utilize quality workflow practices: small commits, descriptive pull requests, and code reviews
    ⭐     Organize and refactor code to be more maintainable
    ⭐     Apply RuboCop’s style guide for code quality
    ⭐     Write thorough, understandable documentation

Database Schema

schema

Endpoints

The base path of each endpoint is:

https://spotme-app-api.herokuapp.com/api/v1
  • For GET requests, you can send the endpoint requests through your internet browser, or utilize an API client (i.e. Postman)
  • For any other requests (i.e. POST, PATCH, DELETE), you will need to use an API client to provide the required request body

The following table presents each API endpoint and its associated documentation

  • For GET requests, an example link is provided for demonstration purposes
Users Docs Examples
Find User by Google ID docs example
Get User by User ID docs example
Create New User docs
Update User docs
Friendships Docs Examples
Get User's Friends docs example
Create New Friendship docs
Delete Friendship docs
Events Docs Examples
Get User's Events docs example
Create User New Event docs
Delete Existing Event docs
Gym Members Docs Examples
Get Users at Gym docs example
Get User's Gym Memberships docs
Create Gym Membership docs
Delete Gym Membership docs
Gym Search Docs Examples
Get Gyms Near User docs example
Get Gym Show Page docs example

About

SpotMe is a 10-day, 6 person project, during Mod 3 of 4 for Turing School's Back End Engineering Program.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published