hackforla / peopledepot

A project to setup a datastore for people and projects at HackforLA. The link below takes you to the code documentation
https://hackforla.github.io/peopledepot/
GNU General Public License v2.0
7 stars 26 forks source link

API Endpoints for CivicTechJobs #2

Open Aveline-art opened 2 years ago

Aveline-art commented 2 years ago

Dependency

Overview

As a developer of CivicTechJobs, I want to know we will retrieve data from this project for our project. For this issue, our team would like to start a discussion on the APIs we would like for this team to develop.

Action Items

Additional Questions

  1. If a field is empty or not available, what data type should we expect after we JSON.parse the payload? Or, in other words, what data will the server project if a field is empty?

Resources/Instructions

API calls

Aveline-art commented 2 years ago
Link to the data tables provided by the peoplesDepot project: https://lucid.app/publicSegments/view/7531ed46-77d2-4b91-a09c-b18f9f210980/image.png

API calls

GET Requests

Project data

Input: project id Output: project name, project description, logo, hero image, icon, readmeurl, hflaWebsiteurl

Questions

  1. When someone wants to know more information about a project, where should a link lead them to? Slack, GitHub Repo, GH read me, or the website?
  2. If we want to display communities of practice information, how will we be able to tell the difference between a CoP and a project to display only CoPs on our landing page? Would we need to save specific ids into our backened?
  3. What is the hide field for?

Auth data

Input: username, password Output: auth token, user id

User data

Input: user id Output: user status id, user status name, desired roles, current skills, target skills, availability, time zone

Questions

  1. When a seeker notices a posting that they want to respond to, where do they go next? What information does the poster need to know about the seeker?

Role data

Input: role id Output: name, description, responsibilities, qualifications

Input: nothing Output: an array of roles

Questions

  1. Roles needs to be associated with a community of practice because we need to display which community a role belongs to for future versions of our landing page.

Reoccurring events/meetingtimes

Input: project id Output: list of reoccurring events for that project in an array where each index is an object with the following: name, day of week, start time, duration, must/should/could roles


PUT/UPDATE Requests

User

Input: desired roles, availability Output: auth token, user id


POST Requests

User

Input: username, password

Aveline-art commented 2 years ago

Question:

  1. Do we still need to gather information on the user's experience level? If so, the database schema of the peoplesDepot does not collect that information.

  2. If we gave an incorrect input, for example, say the username and password was incorrect, what should we expect to receive? How will we be able to tell that the request returned some sort of error?