-
Notifications
You must be signed in to change notification settings - Fork 8
Technical Design
This page lists the CTI web pages and their interaction with the back-end (API, Database, Github).
As of 11/11/2020 this is a copy/paste from Issue 118
Database Diagram And Description
Interaction with Github:
A good part of the information that we want to display in CTI and that we want to save via CTI is stored in Github (GH).
Most of the "Project" datapoints are in GT, for example its name, creation time, update time, description, watch count, star county, open issues, good first issues.
Tags are also saved and retrieved to and from GH.
GH has API to retrieve and save most of this data in a repository.
To save data in GH the user needs to authenticate and be a repository contributor.
To retrieve data from GH there is no need to authenticate...?
Unauthenticated clients can make 60 requests per hour, to get more a user needs to authenticate.
The API seems to have a limit of 5,000 per our.
api.github.com/repos/civictechindex/CTI-website-frontend gives us stargazers_count, watchers_count, open_issues_count
api.github.com/orgs/hackforla gives me how many repos hackforla has
With proper header (Accept: application/vnd.github.mercy-preview+json) api.github.com/repos/giosce/hello-world/topics gives me the repository topics
https://developer.github.com/v3/search/
The Search API has a custom rate limit. For requests using Basic Authentication, OAuth, or client ID and secret, you can make up to 30 requests per minute (1,800 per hour). For unauthenticated requests, the rate limit allows you to make up to 10 requests per minute.
Main Feature: email sign up
Req: ability to people to submit email address to be capture in a table using an API
no back-end required
Main Feature: presenting trending topics about Wizard and Search (#62)
Req: About Search, save words used by people on the DB by using the API and rank them to be presented
no back-end required
Main Feature: it has a search API which is being written presenting the Q&A, and FAQ DB (WIP as well) and a Form where people can go to put new questions and it will be
In additional it has an API capturing and recording the number of clicks on each question that will be an input for the order to presenting them
Main Feature: we want to capture/track people activity around the page, like:
- what users search for
- what users click on/select
- what searches did not resolve on any results
Questions if it is frontend feature, how does the search work ? what is Google Analytics role here?
Is it the same of Organizations?
Invoke organizations API?
Main Features: When somebody type a search we need to record it and count the words used to use that in the trending topics calculation/presentation
if they click refine result we are going to track it as well, like:
how they search what features of the refining they use more Questions how we going to track it? heat map ?
Gio: isn't this "Search Projects"? Should we search for something more (Organizations at least)? Does it search in GH?
no back-end required - strange, it would need to go somewhere, doesn't it?
no back-end required - which page is this?
Main features: - this is not a page, isn't just a set of icons/link in the footer?
no back-end required
Contains share buttons for different social networks
if you are coming from the wizard (tag generator?) page, it is going to remember what repository you are coming from, in order to help sharing, in order to answer to question like : how many people using the wizard the use the sharing page?
Question: privacy polities on place / to define?
Trigger first part: click find project and you get a valid result, it is going populate the screen and then it is time to start recording by using a API call saving:
Name of you organization URL project the existent/current topic tags Trigger second part: once user decide to add more tags, and click the button Add these topic tags to the repo , we are going to record the new tags in the database using an API call
To Do #1: we need to define a process for tags' removal