Production CDN URL usafacts.isaac.works
Production Container URL usafacts-swapi-production.up.railway.app
Production Storybook URL usafacts-storybook.isaac.works
backend: A Node.js server that serves data from the SWAPI API.frontend: A React app that displays the data from the backend via a chart..storybook: A Storybook instance that displays the frontend components in isolation, for testing and rapid development.bin: Contains scripts for running local development and testing.mock: Contains mock data and utilities used for testing.public: Contains static assets for the frontend.types: Contains shared types between the backend and frontend.
- A GitHub hook is setup with the host Railway to deploy the container.
- The Dockerfile delpoys both the
backendNode.js application and thefrontendstatic assets to a single container. - A CNAME is set through Cloudflare's CDN to the Railway container URL for performance and caching.
- A GitHub hook is setup with Cloudflare Pages to host the static storybook assets.
- This repo requires pnpm
- Run
pnpm installto install dependencies - Run
pnpm devto start the backend, frontend, and storybook development servers. - Run
pnpm testto run automated testing for the backend, frontend, and storybook.
- TypeScript is used throughout each project in
strictmode, offering high levels of type testing - ESLint is used to lint each project for common errors and code style
backenduses vitest to run automated testingfrontenduses the@storybook/testlibrary to run automated testing- On push or pull request, GitHub Actions will run all automated testing via
.github/workflows/test.yml - There is nowhere close to enough testing in this repo, but it was mostly for demonstration purposes.
- I would add integation testing as well, preferably Playwright.
- Expand testing
- Add better linting
- Add more documentation
- Add convention tooling through commit hooks
- Use the API mocks gathered to test the backend more thoroughly
- Ideally there are branch-based previews that build when a PR is opened for true CI testing