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).
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.
- 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
To get a local copy up and running follow these simple steps.
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/
- Clone the repo
git clone git@github.com:Turing-Mesh/mesh-backend.git
- Bundle Install
bundle install
- (Optional Heroku deployment)
heroku install guide: https://devcenter.heroku.com/articles/git
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 |
- Create rails database and migrate
$ rails db:create
$ rails db:migrate
- Seed database
$ rails db:seed
- Start server
$ rails s
- Nagivate to
http://localhost:3000/
See the open issues for a list of proposed features (and known issues).
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.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
-
See also the list of contributors who participated in this project.