*NOTE: "schedules" as used in endpoints refer to childrens' enrollments to courses; "schedule" specific endpoints join the children, enrollments, and courses tables and return data matching the given profile_id
{
profile_id: INCREMENT (primary key, auto-increments, generated by database),
name: STRING (required),
email: STRING (required),
role_id: INTEGER (required, foreign key),
avatarUrl: STRING (required, defaults to: 'https://i.stack.imgur.com/frlIf.png'),
}
Method | URL | Description |
---|---|---|
[GET] | /profile/ | Returns an array of all existing profiles. |
[GET] | /profile/:okta_id/ | Returns the profile object with the specified okta_id . |
[GET] | /profiles/users/:profile_id (BUG: /profiles/users route does not exist; app.js only connects to /profiles/user) | Returns an array filled with event objects that contains information based on profile_id and role_id. |
[GET] | /profile/role/:role_id (BUG: does not return any data) | Returns an array filled with event objects that contain information based on role_id for all profiles of a role_id type. |
[POST] | /profile/ | Requires a name, password, and email. Registers a new user. |
[PUT] | /profile/ | Returns an event object with the specified okta . Updates specific profile. |
[DELETE] | /profile/:okta_id/ | Returns an event object with the specified okta . Deletes specific profile. |
These endpoints are user-focused. As opposed to the more flexible Profile endpoints where profile_id must be specified, these endpoints retrieve data specific only to the user profile that is making the API request by using the logged-in user's profile_id.
Method | URL | Description |
---|---|---|
[GET] | /user/ | Returns an event object with the specified okta and type . |
[GET] | /user/inbox/ | Returns an event object with the specified okta . (NOT IMPLEMENTED) |
[GET] | /user/schedules/ | Returns an event object with the specified okta . |
[PUT] | /user/ | Returns an event object with the specified id . Updates specific user. |
[POST] | /user/register | Posts a new user in the database and in the Okta Dashboard. |
NOTE: these are the password requirements: at least 8 characters, a lowercase letter, an uppercase letter, a number, no parts of your username.
The required fields include the following: {
firstName: string,
lastName: string,
email: string,
password: string,
role_id: int,
avatarUr(not required): string,
}
{
parent_id: INCREMENT (primary key, auto-increments, generated by database),
profile_id: INTEGER (required, foreign key),
}
Method | URL | Description |
---|---|---|
[GET] | /parent/:profile_id/children/ | Returns an array filled with children event objects with the specified profile_id . |
[GET] | /parent/:profile_id/schedules/ | Returns an array filled with schedules event objects with the specified profile_id . |
{
child_id: INCREMENT (primary key, auto-increments, generated by database),
profile_id: INTEGER (required, unique, foreign key),
username: STRING (required),
age: INTEGER (required),
parent_id: INTEGER (required, foreign key),
}
Method | URL | Description |
---|---|---|
[GET] | /children | Returns an array containing all existing children. |
[POST] | /children | Requires a username, name, and age. Returns the name, profile_id, and parent_id. |
[GET] | /children/:child_id | Returns the child with the given 'id'. |
[PUT] | /children/:child_id | Returns the updated child object |
[DELETE] | /children/:child_id | Returns the name of the child deleted |
[GET] | /children/:child_id/enrollments | Returns an array filled with event objects with the specified id . |
[POST] | /children/:child_id/enrollments | Returns the event object with the specified id . Enrolls a student. |
[PUT] | /children/enrollments/ | Returns the event object with the specified id . Updates a student's enrollments. (Not Implemented) |
[DELETE] | /children/enrollments/:id | Returns the event object with the specified id . Unenrolls student from course. (Not Implemented) |
{
instructor_id: INCREMENT (primary key, auto-increments, generated by database),
instructor_name: STRING (required),
rating: INTEGER (required),
availability: STRING (optional),
bio: STRING (required),
profile_id: INTEGER (required, foreign key),
status: STRING (required, default: 'pending'),
approved_by: INTEGER (optional, foreign key, default: null, references admin_id),
}
Method | URL | Description |
---|---|---|
[GET] | /instructor/courses/ | Returns an array containing all course event objects belonging to the currently logged in instructor. |
{
program_id: INCREMENT (primary key, auto-increments, generated by database),
program_name: STRING (required, unique),
program_description: STRING (required),
}
Method | URL | Description |
---|---|---|
[GET] | /program/ | Returns an array filled with program objects. |
[GET] | /program/:id | Returns the program object with the specified id . |
[POST] | /program/ | Contains fields: program_name and program_description . Returns the newly created program object. |
[PUT] | /program/:id | Updates the program with the specified id using data from the request body . Returns the modified program |
[DELETE] | /program/:id | Removes the program with the specified id and returns deletion success message . |
{
course_id: INCREMENT (primary key, auto-increments, generated by database),
course_name: STRING (required),
course_description: STRING (required),
days_of_week: ARRAY[strings] (optional),
max_size: INTEGER (required),
min_age: INTEGER (required),
max_age: INTEGER (required),
instructor_id: INTEGER (required, foreign key),
program_id: INTEGER (required, foreign key),
start_time: TIME (required),
end_time: TIME (required),
start_date: DATE (required),
end_date: DATE (required),
location: STRING (required),
number_of_sessions: INTEGER (required),
instructor_name: STRING (required),
syllabus_link: STRING (required)
}
Method | URL | Description |
---|---|---|
[GET] | /course | Returns an array containing all course objects |
[GET] | /course/:course_id | Returns the course object with the specified course_id . |
[POST] | /course | --needs to be fleshed out-- |
[PUT] | /course/:course_id | Updates and returns the updated course object with the specified course_id . |
[DELETE] | /course/:course_id | Deletes the course object with the specified course_id and returns a message containing the deleted course_id on successful deletion |
{
newsfeed_id: INCREMENT (primary key, auto-increments, generated by database),
title: STRING (required),
link: STRING (required),
description: STRING (required),
posted_at: TIMESTAMP (auto-generated),
}
Method | URL | Description |
---|---|---|
[GET] | /newsfeed/ | Returns an array containing all newsfeed objects. |
[GET] | /newsfeed/:newsfeed_id/ | Returns the event object with the specified newsfeed_id . |
[POST] | /newsfeed/ | Creates a new newsfeed object and returns the newly created newsfeed. |
[PUT] | /newsfeed/:newsfeed_id | Updates the newsfeed object with the given newsfeed_id and returns the newly updated newsfeed |
[DELETE] | /newsfeed/:newsfeed_id/ | Deletes the newsfeed object with the given newsfeed_id and returns the deleted newsfeed. |
{
conversation_id: INCREMENT (primary key, auto-increments, generated by database),
profile_id: INTEGER (required, foreign key),
}
Method | URL | Description |
---|---|---|
[GET] | /conversation_id/ | Returns an array filled with inbox event objects. |
[GET] | /conversation_id/:profile_id/ | Retrieves an inbox with the specified inbox_id BUG(?): incorrectly labeled as profile_id in codebase rather than inbox_id |
[POST] | /conversation_id/ | Creates an inbox and returns the newly created inbox. |
[POST] | /conversation_id/messages/ | Returns the event object with the specified inbox_id . Sends a message. |
[PUT] | /conversation_id/:profile_id | Returns an array filled with event objects with the specific profile_id . Updates an inbox. |
[DELETE] | /conversation_id/:profile_id/ | Returns an array filled with event objects with the specific okta . Deletes an inbox. |
{
event_id: INCREMENT (primary key, auto-increments, generated by database),
date: STRING (required),
time: STRING (required),
type: STRING (required),
content: STRING (required),
details: STRING (required),
profile_id: INTEGER (required, foreign key, auto-generated by database),
}
Method | URL | Description |
---|---|---|
[GET] | /calendar-events/ | Returns an array filled with calendar event objects. |
[GET] | /calendar-events/user/ | Retrieves calendar event objects with the profile_id of logged in user |
[GET] | /calendar-events/:event_id/ | Retrieves calendar event object with the specified event_id |
[POST] | /calendar-events/ | Creates a calendar event and returns the newly created calendar event. |
[PUT] | /calendar-events/:event_id | Updates and returns the updated calendar event object with the specific event_id . |
[DELETE] | /calendar-events/:event_id/ | Deletes a calendar event and returns a success message on successful deletion. |
Method | URL | Description |
---|---|---|
[GET] | /schedule/ | Returns an array filled with event objects. |
[GET] | /schedule/:id/ | Returns the event object with the specified id . |
[POST] | /schedule/ | Returns the event object with the specified id . Creates a schedule. |
[POST] | /schedule/sessions/ | Returns the event object with the specified id . Creates a session. |
[PUT] | /schedule/ | Returns the event object with the specified id . Updates specific schedule. |
[DELETE] | /schedule/:id/ | Returns the event object with the specified id . Deletes specific schedule. |
{
super_admin_id: INCREMENT (primary key, auto-increments, generated by database),
profile_id: INTEGER (required, foreign key),
}
{
admin_id: INCREMENT (primary key, auto-increments, generated by database),
profile_id: INTEGER (required, foreign key),
}
{
messages_id: INCREMENT (primary key, auto-increments, generated by database),
sent_at: TIMESTAMP (auto-generated),
title: STRING (required),
read: BOOLEAN (required, default: false),
message: STRING (required),
sent_by_profile_id: INTEGER (required, foreign key),
inbox_id: INTEGER (required, foreign key,
}
Join Table: Programs instructors are approved to teach
{
instructors_program_types_id: INCREMENT (primary key, auto-increments, generated by database),
instructor_id: INTEGER (required, foreign key),
program_id: INTEGER (required, foreign key),
}
Join Table: Courses signed up for by children
{
enrollments_id: INCREMENT (primary key, auto-increments, generated by database),
completed: BOOLEAN (required, default: false),
child_id: INTEGER (required, foreign key),
course_id: INTEGER (required, foreign key),
}
{
resource_id: INCREMENT (primary key, auto-increments, generated by database),
resource: STRING (required),
description: STRING (optional),
task: BOOLEAN (required),
instructor_id: INTEGER (required, foreign key),
}
Visual Database Schema: https://dbdesigner.page.link/WTZRbVeTR7EzLvs86 *Currently Outdated
Loom Video PT1 Loom Video PT2 Loom Video PT3 Loom Video PT4