Skip to content

Turing-Mesh/mesh-backend

Repository files navigation

Welcome to Mesh!

Table of Contents

  1. About The Project
  2. Getting Started
  3. Endpoints
  4. Usage
  5. Roadmap
  6. Contributing
  7. Contributors

About The Project

Background and Description

Mesh is the capstone project for the Turing School of Software and Design. A platform to standardize and organize feedback for programming schools and bootcamps alike. Students are able to easily retrieve and reflect upon past feedback to better improve for the future!

This repo is the backend database api that fuels the Mesh UI application. The backend communicates with the UI using RESTful API JSON endpoints. The endpoints allow the other apps to store users, profiles, roles, student projects, templates and feedback for those each project.

There is automatic email functionality that ties into our Python/Flash Sendgrid API Microservice that alerts a student when feedback has been left on a project. To utilize this functionality, please set up the Sendgrid Microservice (see related repos).

Related Repos

To explore the full web application, please visit the built out front end UI application that hooks into this engine and its endpoints.

To set up automatic email confirmation, please visit the Sendgrid microservice.

Learning Goals

  • Work with a Full Stack team to integrate and learn each others workflow and framework
  • Learn and work with new frameworks or languages
  • Use a professional workflow to reflect industry standards

Created by

Built With

Database Design Document

Database Design Document

Getting Started

To get a local copy up and running follow these simple steps.

Prerequisites

This is an example of how to list things you need to use the software and how to install them.

  • ruby
    rbenv install 2.5.3
  • rails
    gem install rails --version 5.2.5
  • postgreSQL
    install link: https://www.postgresql.org/download/

Installation

  1. Clone the repo
    git clone git@github.com:Turing-Mesh/mesh-backend.git
  2. Bundle Install
    bundle install
  3. (Optional Heroku deployment)
    heroku install guide: https://devcenter.heroku.com/articles/git

Endpoints

For more details please see our API Contract

HTTP verbs Paths Used for Output
GET /api/v1/students/:student_id/student_projects?mod=1 Get all of the project feedback for single student and a single mod json
PATCH /api/v1/students/:student_id/student_projects/:id Update student's project with personal comments json
GET /api/v1/instructors/:instructor_id/students?mod=1 Get all of the student names and ids for instructor's current mod json
POST /api/v1/instructors/:instructor_id/students/search Instructors search for student's by name json
GET /api/v1/instructors/:instructor_id/students/:student_id/project_templates?mod=1&project_number=2 Get a mod project template and rubric categories json
POST /api/v1/instructors/:instructor_id/students/:student_id/student_projects Instructor create student_project and related project_feedback records json
ERROR errors Error handling for requests json

Usage

  1. Create rails database and migrate
$ rails db:create
$ rails db:migrate
  1. Seed database
$ rails db:seed
  1. Start server
$ rails s
  1. Nagivate to http://localhost:3000/

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Contributors

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •