|
16 | 16 | [](https://securityscorecards.dev/viewer/?uri=github.com/javamodules/javamodules.dev)
|
17 | 17 |
|
18 | 18 | This repository provides the web code for the [`javamodules.dev`](https://javamodules.dev) website and app. More coming soon.
|
| 19 | + |
| 20 | +## About the App |
| 21 | + |
| 22 | +The Java Modules site is a web-based application which performs the following functions: |
| 23 | + |
| 24 | +- [ ] Basic UI and components |
| 25 | +- [ ] Allows browsing the artifacts provided by the [JPMS Attic](https://jpms.pkg.st) repository |
| 26 | +- [ ] Allows browsing Maven artifacts with enhanced metadata indicators |
| 27 | + - [ ] Bytecode target for an artifact (minimum and maximum, as applicable) |
| 28 | + - [ ] MRJAR functionality, as applicable |
| 29 | + - [ ] Automatic module detection |
| 30 | + - [ ] Pure module detection |
| 31 | + - [ ] Minimum version for automatic module use |
| 32 | + - [ ] Minimum version for pure module use |
| 33 | +- [ ] Dependency security indicators |
| 34 | + - [ ] GPG signatures |
| 35 | + - [ ] Fingerprints (MD5, SHA1, SHA256, SHA512) |
| 36 | + - [ ] SLSA provenance |
| 37 | + - [ ] SBOMs |
| 38 | + - [ ] Sigstore signing |
| 39 | + - [ ] OVD/OWASP cross-check |
| 40 | + - [ ] Last update |
| 41 | + - [ ] Last commit |
| 42 | +- [ ] Indexed module contents |
| 43 | + - [ ] Module identity and top-level `open` state |
| 44 | + - [ ] Exported and opened packages |
| 45 | + - [ ] Service Loader usages and provides |
| 46 | +- [ ] Reach goals |
| 47 | + - [ ] Extended project health metrics |
| 48 | + - [ ] Builder: Maven Dependencies |
| 49 | + - [ ] Builder: Version Catalog |
| 50 | + - [ ] Builder: Gradle Platform |
| 51 | + |
| 52 | +## Architecture |
| 53 | + |
| 54 | +The [site](https://javamodules.dev) is structured as a [Remix][0] app on [Cloudflare Pages][1]. APIs are defined via [Buf][2] and interact with [Buf Connect][21]. On the backend: structured data is stored in [D1][3], unstructured data in [R2][4], and usage analytics in [Analytics Engine][5]. Search is done via [Algolia][17]. |
| 55 | + |
| 56 | +On the tooling side: [TypeScript][6], [PNPM][7], [Bun][9], and [Wrangler][8]. [Vite][10] and [esbuild][11] do the actual building (with [PostCSS][13]), all wrapped in [Turbo][12]. |
| 57 | + |
| 58 | +As for UI: [Tailwind][14], [React][15], and [shadcn][16]. Frontend testing happens with [Jest][18], [Storybook][19], and [Chromatic][20]. |
| 59 | + |
| 60 | +Backend logic is composed of internal services which run on [Workers][22]. Services either communicate as [bound services][23] or via [queues][24]. |
| 61 | + |
| 62 | +### Data Sources |
| 63 | + |
| 64 | +This app makes extensive use of open APIs and data sources to materialize the underlying data. These include: |
| 65 | + |
| 66 | +- **[`deps.dev`](https://deps.dev)** The Deps.dev API is used to query information about dependencies, their dependents, and to obtain provenance data. |
| 67 | + |
| 68 | +- **[GitHub API](https://docs.github.com/en/rest)** The GitHub API and accompanying BigQuery dataset are consulted to fetch commit and information and to query for `module-info.java` files. |
| 69 | + |
| 70 | +## Workers |
| 71 | + |
| 72 | +Coming soon. |
| 73 | + |
| 74 | +[0]: https://remix.run |
| 75 | +[1]: https://pages.cloudflare.com/ |
| 76 | +[2]: https://buf.build |
| 77 | +[3]: https://developers.cloudflare.com/d1/ |
| 78 | +[4]: https://developers.cloudflare.com/r2/ |
| 79 | +[5]: https://developers.cloudflare.com/analytics/analytics-engine/ |
| 80 | +[6]: https://www.typescriptlang.org/ |
| 81 | +[7]: https://pnpm.io/ |
| 82 | +[8]: https://developers.cloudflare.com/workers/wrangler/ |
| 83 | +[9]: https://bun.sh/ |
| 84 | +[10]: https://vitejs.dev/ |
| 85 | +[11]: https://esbuild.github.io/ |
| 86 | +[12]: https://postcss.org/ |
| 87 | +[13]: https://turbo.build/repo |
| 88 | +[14]: https://tailwindcss.com/ |
| 89 | +[15]: https://react.dev/ |
| 90 | +[16]: https://ui.shadcn.com/ |
| 91 | +[17]: https://algolia.com |
| 92 | +[18]: https://jestjs.io/ |
| 93 | +[19]: https://storybook.js.org/ |
| 94 | +[20]: https://chromatic.com/ |
| 95 | +[21]: https://connectrpc.com/ |
| 96 | +[22]: https://workers.cloudflare.com/ |
| 97 | +[23]: https://developers.cloudflare.com/workers/configuration/bindings/about-service-bindings/ |
| 98 | +[24]: https://developers.cloudflare.com/queues/get-started/ |
0 commit comments