CourseTutorApp is an API only Rails application designed to manage courses and their associated tutors. A course can have multiple tutors, but each tutor can only teach one course.
- 3.3.0
- 7.1.3
- Sqlite3
- Clone the repository
- Run
bundle install
- Run
rails db:create
- Run
rails db:migrate
- Run
rails db:seed
- Run
rails s
Run bundle exec rspec
to run the test suite.
- GET /api/v1/courses - Returns a list of all courses
- Sucessful Response
- status: 201 Created
- body:
{ "courses": [ { "id": 1, "name": "Course 1", "created_at": "2021-07-11T17:00:00.000Z", "updated_at": "2021-07-11T17:00:00.000Z", "tutors": [ { "id": 1, "name": "Tutor 1", "created_at": "2021-07-11T17:00:00.000Z", "updated_at": "2021-07-11T17:00:00.000Z" } ] } ] }
- Error Response
- status: 422 Unprocessable Entity
- body:
{ "error": "Course - Name can't be blank" }
- POST /api/v1/courses - Create a new course along with optional tutors
- Request
{ "course": { "name": "Course 2", "tutors": [ { "name": "Tutor 2" }, { "name": "Tutor 3" } ] } }
- Response
{ "course": { "id": 2, "name": "Course 2", "created_at": "2021-07-11T17:00:00.000Z", "updated_at": "2021-07-11T17:00:00.000Z", "tutors": [ { "id": 2, "name": "Tutor 2", "created_at": "2021-07-11T17:00:00.000Z", "updated_at": "2021-07-11T17:00:00.000Z" }, { "id": 3, "name": "Tutor 3", "created_at": "2021-07-11T17:00:00.000Z", "updated_at": "2021-07-11T17:00:00.000Z" } ] } }
- Course
- name: string
- created_at: datetime
- updated_at: datetime
- Tutor
- name: string
- course_id: integer
- created_at: datetime
- updated_at: datetime