Backend REST APIs ==================================================================== Family API ---------------- - Create a family - method: **POST /api/family/add** - description: create a new family - request example: - response example: - Create multiple families - method: **POST /api/family/addBatch** - description: create multiple new families - request example: - response example: - Update family information - method: **POST /api/family** - description: update the information of a family - request example: - response example: - Search families - method: **GET /api/family** - description: search families based on criteria - request example: - response example: - Delete a family - method: **DELETE /api/family** - description: delete a family from the database - request example: - response example: Child API ---------------- - Create a child - method: **POST /api/child/add** - description: add a child to a family - request example: - response example: - Update child information - method: **POST /api/child** - description: update the information of a child - request example: - response example: - Search children - method: **GET /api/child** - description: search children based on criteria - request example: - response example: - Update sibling information - method: **GET /api/child/siblings** - description: update the sibling information of a child - request example: - response example: - Delete a child - method: **DELETE /api/child** - description: delete a child from the database - request example: - response example: Conversation API ------------------ - Create a conversation - method: **POST /api/conversation/** - description: add a conversation - request example: - response example: - Delete a conversation - method: **DELETE /api/conversation** - description: delete a conversation record from the database - request example: - response example: Lab API ---------------- - Create a lab - method: **POST /api/lab/add** - description: create a new lab - request example: - response example: - Update lab information - method: **POST /api/** - description: update the information of a lab - request example: - response example: - Delete a lab - method: **DELETE /api/lab** - description: delete a lab from the database - request example: - response example: Personnel API ------------------ - Create a lab member - see "Register" in the User API - Update lab member information - method: **POST /api/personnel** - description: update the information of a lab member - request example: - response example: - Search lab members - method: **GET /api/personnel** - description: search lab members based on criteria - request example: - response example: - Delete a lab member - method: **DELETE /api/personnel** - description: delete a lab member from the database - request example: - response example: User API ------------------ - Register a lab member - method: **POST /api/user/signup** - description: create a new lab member - request example: - response example: - Login to the system - method: **POST /api/user/login** - description: login to the system - request example: - response example: - Login check - method: **POST /api/user/checklogin** - description: check whether the user is already logged in - request example: - response example: - Update login password - method: **POST /api/user/changePassword** - description: update login password - request example: - response example: - Reset login password - method: **POST /api/user/resetPassword** - description: reset login password to a random one, if a user forgets his/her password - request example: - response example: Study API -------------------- - Create a study - method: **POST /api/study/add** - description: create a new study - request example: - response example: - Update study information - method: **POST /api/study** - description: update the information of a study - request example: - response example: - Search studies - method: **GET /api/study** - description: search studies based on criteria - request example: - response example: - Delete a study - method: **DELETE /api/study** - description: delete a study from the database - request example: - response example: Study assignment API ---------------------------- - Create eligible experimenters for a study - method: **POST /api/experimenter/experimenter** - description: assign experimenters to a study - request example: - response example: - Assign a study to a lab member - method: **POST /api/experimenter/studies** - description: assign a study to lab members - request example: - response example: Schedule API ---------------------------- - Create a study schedule - method: **POST /api/schedule/add** - description: add a study schedule - request example: - response example: - Update study schedule information - method: **POST /api/schedule** - description: update the information of a study schedule - request example: - response example: - Send a reminder email for an upcoming schedule - method: **POST /api/schedule/remind** - description: send a reminder email for an upcoming schedule - request example: - response example: - Mark a study schedule is completed - method: **POST /api/schedule/complete** - description: mark a study schedule is completed - request example: - response example: - Search study schedules - method: **GET /api/schedule** - description: search study schedules based on criteria - request example: - response example: - Search study schedules - method: **GET /api/schedule/today** - description: search today's study schedules - request example: - response example: - Search study schedules within this week - method: **GET /api/schedule/week** - description: search study schedules from the Monday to the Sunday of this week - request example: - response example: - Delete a study schedule - method: **DELETE /api/schedule** - description: delete a study schedule from the database - request example: - response example: Appointment API ---------------------------- - Create a study appointment - method: **POST /api/appointment/add** - description: add a study appointment to a study schedule - request example: - response example: - Update a study appointment - method: **POST /api/appointment** - description: update the Experimenter information of a study appointment, - request example: - response example: - Delete a study appointment - method: **DELETE /api/appointment** - description: delete a study appointment from a study schedule - request example: - response example: Experimenter API ---------------------------- - Assign experimenters to a study appointment - method: **POST /api/experimentAssignment** - description: assign lab members to a study appointment - request example: - response example: Google service API -------------------------------- - Send an email - method: **POST /api/gmail/send** - description: send an email to parents from lab email - request example: - response example: - Create a calendar event - method: **POST /api/cal/** - description: add a Google Calendar event for a study schedule - request example: - response example: - Update a calendar event - method: **PATCH /api/cal/** - description: update a Google Calendar event - request example: - response example: - Delete a calendar event - method: **DELETE /api/cal/** - description: delete a Google Calendar event - request example: - response example: - Create Google Credentials - method: **GET /api/extAPIs** - description: create Google Credentials for a lab - request example: - response example: - Setup a token for a Google account - method: **POST /api/extAPIs** - description: setup a token for a Google account used by a lab - request example: - response example: - Setup a token for adminstrator account - method: **POST /api/extAPIs/admin** - description: setup the Google account for adminstrator account - request example: - response example: - Retrieve email information for the Admina and lab account - method: **POST /api/extAPIs/email** - description: Retrieve email addresses and displayName for the Admina and lab account - request example: - response example: Feedback API ---------------------- - Create feedback - method: **POST /api/feedback** - description: send a feedback email to the adminstrator - request example: - response example: