MENU navbar-image

Introduction

This documentation aims to provide all the information you need to work with our API.

Authenticating requests

To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

You can retrieve your token by visiting your dashboard and clicking Generate API token.

Endpoints

GET api/user

requires authentication

Example request:
curl --request GET \
    --get "https://courses.ianapplebaum.com/api/user" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://courses.ianapplebaum.com/api/user"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 57
access-control-allow-origin: *
 

{
    "id": 1,
    "name": "Ian Tyler Applebaum",
    "email": "ian.tyler@electricbluefish.com",
    "email_verified_at": null,
    "two_factor_confirmed_at": null,
    "current_team_id": null,
    "profile_photo_path": null,
    "created_at": "2022-12-31T05:15:55.000000Z",
    "updated_at": "2022-12-31T05:15:55.000000Z",
    "profile_photo_url": "https://ui-avatars.com/api/?name=I+T+A&color=7F9CF5&background=EBF4FF"
}
 

Request      

GET api/user

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Display the specified resource.

requires authentication

Example request:
curl --request GET \
    --get "https://courses.ianapplebaum.com/api/syllabus/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://courses.ianapplebaum.com/api/syllabus/1"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
"result" : "ok",
"events" : [
{
"event_name" : "Syllabus/Ice Breaker",
"id" : 1,
"created_at" : "2023-01-07T05:03:09.000000Z",
"event_description" : "First day of class we'll get to know each other with a small \"hackathon\" activity",
"class_type" : "Lab",
"syllabus_id" : 1,
"updated_at" : "2023-01-07T06:29:51.000000Z",
"event_date" : "2023-01-17"
},
{
"event_name" : "How to pitch an idea",
"id" : 2,
"created_at" : "2023-01-07T06:45:37.000000Z",
"event_description" : "We will learn how to pitch an enticing project idea.",
"class_type" : "Lecture",
"syllabus_id" : 1,
"updated_at" : "2023-01-07T06:45:37.000000Z",
"event_date" : "2023-01-18"
},
{
"event_name" : "Project Brainstorming",
"id" : 3,
"created_at" : "2023-01-07T06:47:55.000000Z",
"event_description" : "We will learn what tools are out there for building great capstone projects. We will also talk about what solving problems and avoiding picking technology for technology sake.",
"class_type" : "Lab",
"syllabus_id" : 1,
"updated_at" : "2023-01-16T13:50:23.000000Z",
"event_date" : "2023-01-19"
},
{
"event_name" : "Individual elevator pitch",
"id" : 4,
"created_at" : "2023-01-07T06:48:50.000000Z",
"event_description" : "All students will pitch their projects.",
"class_type" : "Lab",
"syllabus_id" : 1,
"updated_at" : "2023-01-07T06:48:50.000000Z",
"event_date" : "2023-01-24"
},
{
"event_name" : "Test Procedures Document",
"id" : 26,
"created_at" : "2023-01-10T04:02:09.000000Z",
"event_description" : "The Test Procedures document describes the approach and tests to be performed to verify the requirements specified in the Requirements Document. It includes procedures for unit tests, which involve testing individual methods with input parameter values and expected results, using mock objects to stub external classes. It also includes integration tests, which demonstrate each use-case based on the use-case descriptions and sequence diagrams, using mock objects for external input and verification. Finally, it includes acceptance tests, which demonstrate all functional and non-functional requirements through a combination of automated tests derived from use-cases and manual tests with recorded observations of the results.",
"class_type" : "Assignment",
"syllabus_id" : 1,
"updated_at" : "2023-01-12T04:54:50.000000Z",
"event_date" : "2023-03-05"
},
{
"event_name" : "Spring Break (no classes held)",
"id" : 9,
"created_at" : "2023-01-07T06:53:03.000000Z",
"event_description" : "Monday, March 6 - Sunday, March 12 is Spring Break!",
"class_type" : "Break!",
"syllabus_id" : 1,
"updated_at" : "2023-01-16T03:48:37.000000Z",
"event_date" : "2023-03-06"
},

],
"syllabus" : {
"course_semester" : "Spring",
"id" : 1,
"start_date" : "2023-01-17",
"course_year" : 2023,
"created_at" : "2023-01-07T05:02:29.000000Z",
"updated_at" : "2023-01-07T06:44:34.000000Z",
"end_date" : "2023-05-09",
"course_name" : "Projects in Computer Science",
"discord_channel" : "1060282877230723077"
}
}
 

Request      

GET api/syllabus/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the syllabus. Example: 1

Display a listing of the resource.

requires authentication

// * @return \Illuminate\Http\Response

Example request:
curl --request GET \
    --get "https://courses.ianapplebaum.com/api/syllabus" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://courses.ianapplebaum.com/api/syllabus"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 56
access-control-allow-origin: *
 

{
    "result": "ok",
    "syllabi": [
        {
            "id": 1,
            "course_name": "Projects in Computer Science",
            "course_semester": "Spring",
            "course_year": "2023",
            "start_date": "2023-01-17",
            "end_date": "2023-05-09",
            "created_at": "2022-12-31T05:16:39.000000Z",
            "updated_at": "2022-12-31T05:16:39.000000Z",
            "discord_channel": "1060282877230723077"
        },
        {
            "id": 2,
            "course_name": "CIS Projcts in Computer Science",
            "course_semester": "Spring",
            "course_year": "1999",
            "start_date": "2004-11-07",
            "end_date": "2007-08-16",
            "created_at": "2023-01-05T04:32:32.000000Z",
            "updated_at": "2023-01-05T04:32:32.000000Z",
            "discord_channel": null
        }
    ]
}
 

Request      

GET api/syllabus

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json