supabase / repository.surf Goto Github PK
View Code? Open in Web Editor NEW๐
Home Page: https://repository.surf
License: MIT License
๐
Home Page: https://repository.surf
License: MIT License
With the supabase ui library, we can remove the Icon folder entirely - screen through the repo and update accordingly
When the user selects repos, the UI doesn't make it too clear which repos have been selected:
I think it should show it like, "selected repos: supabase, supabase-js, realtime, repository.surf and 11 more"
Also, it seems like there's no sharable/bookmarkable link that contains info about which repos have been selected. I think it would also be nice to have?
It would be awesome if you could embed charts into other sites (with a Powered by ..
of course)
After merging #36, I think it'll be good to show the exact time the star history was updated, not just the date.
I think having a "Past 90 days" option in addition to "All time", "Past month", and "Past week" will be useful for analyzing the data.
Continuing from #3.
When I sort the repos by star count, click one of the repos and refresh the browser, it goes back to them being sorted alphabetically.
Also, I think they should be sorted by star count by default.
At the moment, on the organization page, to view another organization's page, users have to go back to the landing page (either by the provided back button in the UI, or browser back button) to key in another organization
Allow users to do this action without having to traverse back to the landing page
And idea is to leverage on tailwindui's nav bar?
As a github org owner, I want to be able to manage what is visible, and provide my own Developer Key so that this repo can track issues for private organisations.
infrastructure
repo), or just to people inside the same github orgWe can use the owner's github token so that we aren't maxing out our own each day
On the new layout, we're showing the URL twice - and I'm thinking it might not be necessary:
I'm not sure what would be a good solution for it - but one simple solution might be just changing the text in the search box. Instead of having repository.surf/... which feels a bit redundant, what if we had something like, "Switch to another org/owner: "?
I busted through Github's API rate limits while testing the organizations' star history feature, will be good to show a toast for such an error and the corresponding UI state across the pages.
Resolving #33 should mitigate the issue of busting rate limits too
I think a good feature (and also an idea brought up by Bobbie + Inian) will be to provide a chart that tracks open/closed issues filtered down to tags (e.g project-zero or high-priority) under the issue tracking section.
This may add value to project managers that are tracking burndowns for specific issues, something like what Clubhouse or JIRA (i think?) does (e.g Burndown chart for Sprint xx)
We can also provide data such as turnover rate for labelled issues, e.g average of 2 days per high-priority issue -> good indication of response for certain issues
Probably can follow these steps:
We probably can add these stuffs in 2 areas: landing page + side bar
Will need to confirm exactly what links to add, what I can think of are:
Example: Go to Microsoft's page. When TypeScript's repo is not completely loaded, when you select one of the other repos, it says "Preparing star history... 1 out 1 repos loaded" but it doesn't show the graph.
Also, when a single repo is selected, it should start showing the partial graph even when the data is not completely loaded yet.
At the moment due to the github's api's pagination per_page limitation of max 100, we only show 100 repositories in the side panel - most organizations have more than 100.
However it isn't optimal as well to paginate through the api and throw all the repositories in the side panel as some organizations like Google has 1.9k repos. I feel the best way is to implement a search field and only display max 100 results in the side bar.
We may need to start being careful about our API rate limits too
When I open https://repository.surf/supabase, it shows this message for a split second: "Issues under Supabase are not being tracked at the moment."
I think instead of that, we should show a spinner when we do track issues under the given org?
For example, this one's baseline's already 0: https://repository.surf/supabase/postgrest-rs
When the baseline's <= 5, I think we should just automatically set it to 0, too.
We can show either daily closed issues or cumulative closed issues. Or maybe both? I'm not sure what would be the most useful for this one. @kiwicopple
@joshenlim's note:
I realised pulling issue tracking on demand (skipping lambda) might be possible:
{
repository(owner: "supabase", name: "supabase") {
issues(first: 100) {
totalCount
edges {
node {
createdAt
closedAt
}
}
}
}
}
But not exactly sure if possible or how complicated it might be
If you go to https://repository.surf/supabase and click "Past 90 days" or "Past month / 30 days", it doesn't make any difference since we don't have enough data (we only have about 2 weeks worth of data).
In a case like that, we should hide those options to make the UI/UX slightly simpler.
I'm wondering if its possible to have a loading indicator on the organization's star history similar to how we do it for the individual repositories? I'd say just a loader will be fine we dont have to show the chart updating live as results are pulled in
Also while the organization's star history is loading, if we go to a repository page and the repository's star history is still loading, then go back to the organization overview page, the star history on the organization page will show a chart (that's incomplete cause not all the data is pulled in yet) and with a Loading 100% message
Been noticing a couple of rows with repeated organization and repository name pairs (not too sure if its from testing, but the data in this table is not that important since its a cache so not to worry). I did verify that the updating of the cache is working without inserting new rows though. Two possible solutions:
Do a check if a row with the organization and repo exists before inserting
Change PK of the table to be organization and repository to enforce this from the DB
Personally feel that option 2 is more optimal - i guess this is one of the instances which the table editor should support creation of more than 1 PK for a table as well haha
For now, we can do it via the second method by good ol' SQL query
This one's tricky - it might be that edge case issue that was mentioned. I noticed that the total star count of a repo does not match the latest node in the star history chart as such:
Total star count on the header is 4731 but the latest node in the chart is 4736, checking the github repo directly shows that supabase repo has 4731 stars
Another example under vercel:
Total star count on header is 59687 but latest node in the chart is 59721
One thing's consistent is that our chart is showing slightly higher numbers than the actual
As mentioned in https://supabase.slack.com/archives/C01J20NTDSL/p1609830681017800
We need some form of UX to let users know why issues tracking isn't available for organizations (at least except supabase). Thinking a modal might be sufficient?
Should prevent any confusion regarding the "issues are not being tracked for {org} at the moment" message
When I go to http://<url>/supabase and select all repos, the growth statistics for "Past day" shows 0 even though I don't think it should be 0.
I feel like we could simply remove the whole section now that we have "daily new counts"? Or, alternatively, I feel like we should show "Past week" and "Past 30 days", and then compare them to the previous 1 week period and 1 month period, respectively.
This should be feasible even for orgs with many repos and many stars.
We get 5000 points every hour from the GitHub API, and each point gives us the ability to retrieve about 100 stargazers. So, that means we can retrieve about 500,000 stargazers every hour - which should be enough for almost all orgs.
Plus, once we have the star history data cached in SB, we won't have to retrieve older data anymore. We can just retrieve newer data and merge it with the cache.
When showing a star history for a whole org, it should work even when the org has 100+ repos
At the moment, it takes about 20 seconds to load the star history graph for repositories with > 10k stars if not cached, let alone more than 10k stars. The spinning loader in this context becomes a really bad UX as the user has no idea if the site died or not.
Am thinking we should have a progress bar for the star history retrieval - we can know the total number of pages that needs to be fetched by (total # number of stars / MAX_ROWS_PER_PAGE), as an when each page is successfully fetched, we update a counter and the progress bar % can just be (# pages fetched / total # of pages)
Keep in mind this should also work with our debouncing issue request (#13) as well
Being able to see the number of newly closed issues per day might be nice in addition to the cumulative counts.
At the moment chart embed piggy backs on the repository page (shows chart per repo) which is going to be deprecated.
Two things here:
This might be a stretch, but I thought it might be nice to have for extra convenience.
For example, we can add it here: https://github.com/supabase/repository.surf/projects/1
It would be nice if we showed the repos with the most stars at the top by default.
Not sure why i didn't before but I think we can re-use the IssueTracker component for the organization page
Clicking the "today" option when looking at a star history tries to show a single data point, which is not useful.
So instead of having the "today" option, I think we should have something like "Past 30 days".
Charts can be embedded via the following url for example:
repository.surf/supabase/supabase/embed?chart=stars
Think the stars chart is broken due to the changes we've done for star retrieval. Will need to bring the changes over from index.js to embed.js.
It would be nice to have a "show daily increase" option. So the options will be "cumulative stars" vs "daily increase".
When you click cumulative stars, you see what you see now. When you click daily increase, you'll see a time-series chart of daily increases. Either way, you'll be able to filter it by time (all time, past month, past week)
This will be really nice to have for #66.
I think this might be nice for examining the org/repo's growth.
This would be similar to how we show it for star histories.
(I think a better long-term approach for this one might be to move the entire API call logic to the backend so that if a user goes away and comes back later, the data they wanted to see will be ready for them.)
This is so that when the app exceeds the API limit for the other orgs, users will at least be able to check Supabase's page as an example.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.