{"id":44364207,"url":"https://github.com/uclaacm/opensource","last_synced_at":"2026-02-11T18:16:36.970Z","repository":{"id":39055932,"uuid":"364504742","full_name":"uclaacm/opensource","owner":"uclaacm","description":"opensource @ acm, work-in-progress","archived":false,"fork":false,"pushed_at":"2024-05-14T05:52:12.000Z","size":3333,"stargazers_count":11,"open_issues_count":16,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-05-15T11:32:29.804Z","etag":null,"topics":["ucla-opensource"],"latest_commit_sha":null,"homepage":"https://opensource.uclaacm.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uclaacm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-05T08:09:21.000Z","updated_at":"2024-05-30T04:47:55.418Z","dependencies_parsed_at":"2024-01-12T06:54:39.938Z","dependency_job_id":"73f903f0-f071-480f-ba68-8ec436e4401e","html_url":"https://github.com/uclaacm/opensource","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/uclaacm/opensource","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uclaacm%2Fopensource","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uclaacm%2Fopensource/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uclaacm%2Fopensource/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uclaacm%2Fopensource/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uclaacm","download_url":"https://codeload.github.com/uclaacm/opensource/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uclaacm%2Fopensource/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29340717,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T16:14:43.024Z","status":"ssl_error","status_checked_at":"2026-02-11T16:14:15.258Z","response_time":97,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ucla-opensource"],"created_at":"2026-02-11T18:16:36.276Z","updated_at":"2026-02-11T18:16:36.964Z","avatar_url":"https://github.com/uclaacm.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# open-source at acm (at ucla)\n\nhello friends! this is a ~ top-secret ~ project that has three key goals:\n\n1. to showcase the open-source projects, events, and culture at [acm at UCLA](https://uclaacm.com)\n2. so that matt (@mattxwang) can test out [Next.js](https://nextjs.org/) (for possible use in other acm projects)!\n3. to test out [WestwoodCSS](https://github.com/uclaacm/WestwoodCSS), a CSS framework made by acm at ucla!\n\nEventually, matt's got bigger ideas - he'd love to showcase how awesome OSS is at UCLA!\n\n## Dev Notes\n\n### Setup\n\nWe use the typical node project workflow, but with [yarn](https://yarnpkg.com/). To run a local dev copy,\n\n```sh\n$ git clone https://github.com/uclaacm/opensource.git # or use ssh!\n...\n$ cd opensource\n...\n$ yarn install\n...\n$ yarn dev\n...\n```\n\n### Stack\n\nThis app is built with [Next.js](https://nextjs.org/), a framework built on top of [React](https://reactjs.org/). We enforce [Typescript](https://www.typescriptlang.org/) throughout the project, and have a strict linter with [ESLint](https://eslint.org/) - enforced as a pre-commit hook with [Husky](https://github.com/typicode/husky) and [lint-staged](https://github.com/okonet/lint-staged#readme). The CSS framework used is an alpha version [WestwoodCSS](https://github.com/uclaacm/WestwoodCSS), ACM Design's own CSS framework!\n\nWe bootstrapped this app with [`create-next-app`](https://nextjs.org/docs/api-reference/create-next-app) using the `with-typescript-eslint-jest` template. There are some other goodies too, like Prettier and Jest (the latter we'd use more seriously in production).\n\nThis app is deployed on [Netlify](https://www.netlify.com/) using their [Next.js plugin](https://github.com/netlify/netlify-plugin-nextjs); in particular, this let's us (kind of) [take advantage of ISR](https://www.netlify.com/blog/2021/03/08/incremental-static-regeneration-its-benefits-and-its-flaws/).\n\n### misc\n\nSome small notes on how I've been writing the app so far:\n\n* I use [octokit](https://github.com/octokit/octokit.js) to wrap GitHub's API to get information about the `uclaacm` org. So far, all of this is ISR'd :)\n* [WestwoodCSS](https://github.com/uclaacm/WestwoodCSS) is still in early alpha, so:\n  * there is no documentation (other than reading the source file)\n  * there is no guarantee of forwards-compatability with new versions of WestwoodCSS\n* so far, there is no unified types file; most component types live in the component file, and there is some relevant typing in `util/types.ts`\n* the mapping of event data to human-readable components in `components/GitHubEventAction.tsx` is manually done (and currently, manually typed). I haven't *really* looked into it, but...\n  * I'm sure there are ways we can use the generated types for `octokit` to flesh out the event types, instead of manually picking/resolving fields\n  * there may even be a way to programatically explore types and do the string generation in a much more natural way!\n* most of the actual copy isn't here yet! i'm mostly just fiddling with code :)\n\n\nWant to give a quick shoutout to [Bryan Pan](https://bryanpan.co/) of [Creative Labs](https://www.creativelabsucla.com/) - he's been a big pusher of Next and a great friend to ACM!\n\n## Licensing\n\nThis code is under the MIT License, so you can generally use it as you see fit (including forking, copying, etc.). I would love to know if you did - send matt an email at [matt@matthewwang.me](mailto:matt@matthewwang.me).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuclaacm%2Fopensource","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuclaacm%2Fopensource","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuclaacm%2Fopensource/lists"}