The Podcast Fellowship

Data Reference
User
Object
id
integer
password
string
first_name
string
last_name
string
phone
string
email
string
is_admin
boolean
is_active
boolean
Student
Object
id
integer
user_id
integer

foreign key to user table

gender
string
Example:
m/f
city
string
state
string
country
string
religion
string
mother_religion
string
father_religion
string
religion_identity
string
jewish_story
string
jewish_education
string
Example:
y/n
jewish_eduction_desc
string
student_professional
string
Example:
student/professional
school
string
city_live
string
state_live
string
how_did_you_hear
string
referred_by_frield
string
qc_acceptance
boolean
image
string
application_date
string
acceptance_date
string
status
string
Example:
Incomplete, Pending, Accepted, Rejected, Active, Dormant, Fumble, Graduated, Archived
reject_reason
string
status_change_date
string
Mentor
Object
id
integer
user_id
integer

foreign key to user table

school
string
city
string
state
string
country
string
status
string
Example:
Pending, Approved, Active, Dormant, Archived
Match
Object
id
integer
student_id
integer

foreign key to student table

mentor_id
integer

foreign key to mentor table

date_matched
string
is_active
boolean
Payout
Object
id
integer
match_id
integer

foreign key to match table

podcast_id
integer

foreign key to podcast table

amount
number
payment_method
string
Example:
Paypal, Bank Transfer
date
string
Topic
Object
id
integer
topic
string
description
string
image
string

url

is_series
boolean

will be categorized in the series section if yes

Speaker
Object
id
integer
title
string
first_name
string
last_name
string
bio
string
Podcast
Object
id
integer
title
string
speaker_id
integer

foreign key to speaker table

topic_id
Array of Topic
type
string
Example:
audio/video
embed_code
string
series_num
integer

if the topic is a series, this is the order within the series of the podcast

image
string
duration
string
Rating
Object
id
integer
student_id
integer

foreign key to student table

podcast_id
integer

foreign key to podcast table

rating
integer

1…5

timestamp
string
Note
Object
id
integer
student_id
integer
podcast_id
integer
note
string
is_sent
boolean
timestamp
string
Token
Object
token
string
Example:
eyJhbGciOixIUzI1NiIsInR5cCI6IkpXUyJ9.eyJzdWIiOiIxIiwiaXNzIjoiaHR0cDpcL1wvbG9jYWxob3N0OjgwMDBcL2FwaVwvdjFcL2F1dGhcL2xvZ2luIiwiaWF0IjoiMTQzMzE4MDg2MiIsImV4cCI6IjE0MzMxODQ0NjIiLCJuYmYiOiIxNDMzMTgwODYyIiwianRpIjoiMjM1ZWYyMzEyM2E1NjhjODRmNzExMjQ3NDE3NjQ0ZWQifQ.MTliYTI3MDhhMGUzMjhkNmQzYjUxMTI4NGI0MzM0OGM1M2VlOWQ1OGRhZWYxZjFiYTc4MGUxZDc1MDU4NWM0Ng
Object
id
integer
student_id
integer
search term
string
timestamp
string
Saved Podcasts
Object
id
integer
student_id
integer
podcast_id
integer
Saved Topic
Object
id
integer
student_id
integer
topic_id
integer
Saved Speaker
Object
id
integer
student_id
integer
speaker_id
integer
API Methods
Auth
POST /auth/login
GET /auth/logout
POST /password/email
POST /password/reset
Login
POST /auth/login

Request parameters

email
string optional
password
string optional

Responses

200 OK
Body
Object
token
user
401 Unauthorized
Logout
GET /auth/logout
Get Password Reset
POST /password/email

Request parameters

email
string optional

Responses

200 Email Sent
Body
Object
password_reset_token
string
Reset Password
POST /password/reset

Request body

Object
email
string
password
string
token
string

Responses

200 OK
401 Invalid reset code or invalid email address
Apply
POST /apply/1
POST /apply/{student_id}/2
POST /apply/{student_id}/3
Apply Step 1
POST /apply/1

Request parameters

first_name
string optional
last_name
string optional
email
string optional
phone
string optional
gender
string optional
date_of_birth
string optional
city
string optional
state
string optional
country
string optional

Responses

201 Created
Body

Return id of student created

integer
Apply Step 2
POST /apply/{student_id}/2

Path variables

student_id
integer required

Request parameters

student_id
integer optional
religion
string optional
mother_religion
string optional
father_religion
string optional
religion_identity
string optional
jewish_story
string optional
jewish_education
boolean optional
jewish_education_desc
string optional
Apply Step 3
POST /apply/{student_id}/3

Path variables

student_id
integer required

Request parameters

student_id
integer optional
student_professional
string optional
city_live
string optional
state_live
string optional
how_did_you_hear
string optional
qc_acceptance
boolean optional
referred_by_friend
string optional

if referred by a friend, friend’s name

Topics
GET /topics?series=0
GET /topics?series=1
Get Topics
GET /topics?series=0

Need to join with the student_topic table to see if the student has saved the topic

Request parameters

limit
integer optional

number of results to return

Responses

200 OK
Body
Array of Topic
Get Series
GET /topics?series=1

Need to join with the student_topic table to see if the student saved the series

Responses

200 OK
Body
Array of Topic
Speakers
GET /speaker/{speaker_id}
GET /speakers
Get Speaker
GET /speaker/{speaker_id}

Path variables

speaker_id
string required

Responses

200 OK
Body
400 Invalid speaker id
Get Speakers
GET /speakers

Request parameters

limit
integer optional

number of results to return

Responses

200 OK
Body
Array of Speaker
Podcast
GET /podcast/{podcast_id}
GET /podcasts
GET /search
Get Podcast
GET /podcast/{podcast_id}

Path variables

podcast_id
integer required

Responses

200 OK
Body
400 Invalid podcast id
Get Podcasts
GET /podcasts

Can specify a topic, speaker or if it is featured.
Need to join with the student_podcast table to show if the student has saved the podcast

Request parameters

topic_id
integer optional

can be a topic or series

speaker_id
integer optional
featured
boolean optional

Responses

200 OK
Body
Array of Podcast
GET /search

Can search by search term and/or topics, series, speakers

Request parameters

search_term
string optional
topics
array of integer optional

topic ids

Collection format: csv
series
array of integer optional

series ids

Collection format: csv
speakers
array of string optional

speaker ids

Collection format: csv

Responses

200 OK
Body
Array of Podcast
Student
GET /student/{student_id}
GET /student/{student_id}/podcasts
GET /student/{student_id}/topics
GET /student/{student_id}/speakers
GET /student/{student_id}/topics
GET /student/{student_id}/recent
POST /student/{student_id}
POST /student/{student_id}/complete_podcast
POST /student/{student_id}/referafriend
POST /student/{student_id}/save
POST /student/{student_id}/save
POST /student/{student_id}/save
Get Student
GET /student/{student_id}

Path variables

student_id
integer required

Responses

200 OK
Body
400 Invalid student id
Get Saved Podcasts
GET /student/{student_id}/podcasts

Path variables

student_id
integer required

Request parameters

limit
integer optional

get limited results

Responses

200 OK
Body
Array of Podcast
400 Invalid student id
Get Saved Topics
GET /student/{student_id}/topics

Path variables

student_id
integer required

Responses

200 OK
Body
Array of Topic
400 Invalid student id
Get Saved Speakers
GET /student/{student_id}/speakers

Path variables

student_id
integer required

Responses

200 OK
Body
Array of Speaker
400 Invalid student id
Get Saved Series
GET /student/{student_id}/topics

Path variables

student_id
integer required

Responses

200 OK
Body
Array of Topic
400 Invalid student id
Get Recent Classes
GET /student/{student_id}/recent

Need to join with the student_podcast table to know if the student saved the podcast

Path variables

student_id
integer required

Responses

200 OK
Body
Array of Podcast
400 Invalid student id
Edit Student Info
POST /student/{student_id}

Path variables

student_id
integer required

Request body

Object
email
string
email_confirm
string
password
string
new_password
string
password_confirm
string
phone
string
city
string
school
string
image
string

upload file, save url

Responses

200 OK
400 Invalid student id
Complete Podcast
POST /student/{student_id}/complete_podcast

This function should record the podcast, rating and comments and invoke the payout process.

Path variables

student_id
integer required

Request body

Object
podcast_id
integer required
rating
integer required
comments
string
comment_audience
string
Example:
public, admin
timestamp
string

Responses

201 Created
400 Invalid student/podcast id
Refer a Friend
POST /student/{student_id}/referafriend

Path variables

student_id
integer required

Request parameters

friends
array of object optional
Collection format: csv

Responses

201 Created
400 Invalid student_id
Save Podcast
POST /student/{student_id}/save

Path variables

student_id
integer required

Request parameters

podcast_id
integer required

Responses

200 OK
400 Invalid Student/Podcast id
Save Speaker
POST /student/{student_id}/save

Path variables

student_id
integer required

Request parameters

speaker_id
integer required

Responses

200 OK
400 Invalid Student/Speaker id
Save Topic
POST /student/{student_id}/save

Path variables

student_id
integer required

Request parameters

topic_id
integer required

Responses

200 OK
400 Invalid Student/Topic id
Payouts
GET /payouts/{student_id}
Get Payouts
GET /payouts/{student_id}

Path variables

student_id
integer required

Responses

200 OK
Body
Array of Payout
Notes
POST /note
POST /note/{note_id}/edit
GET /notes
Create Note
POST /note

Request parameters

student_id
integer optional
podcast_id
integer optional
note
string optional
timestamp
string optional
Edit Note
POST /note/{note_id}/edit

Path variables

note_id
integer required

Request parameters

note
string optional
Get Notes
GET /notes

If only student_id for parameter, get recent notes from the student. If both student_id and podcast_id then get recent notes from the student on that podcast.

Request parameters

student_id
integer optional
podcast_id
integer optional

Responses

200 OK
Body
Array of Note
400 Invalid student/podcast id
Misc
POST /contact
Contact
POST /contact

Request parameters

first_name
string optional
last_name
string optional
email
string optional
phone
string optional
message
string optional

Responses

200 OK
Search Term
GET /search_term/{student_id}
POST /search_term
Get Search Terms
GET /search_term/{student_id}

Path variables

student_id
integer required

Responses

200 OK

should return the last 5 search terms from the student starting from most recent

Set Search Term
POST /search_term

Request parameters

student_id
integer optional
search_term
string optional