https://github.com/thomascode92/fibapp
An (unnecessarily complex) Fibonacci calculator designed to explore multi-service applications 🧮🔍
https://github.com/thomascode92/fibapp
monorepo reactjs turborepo
Last synced: 12 days ago
JSON representation
An (unnecessarily complex) Fibonacci calculator designed to explore multi-service applications 🧮🔍
- Host: GitHub
- URL: https://github.com/thomascode92/fibapp
- Owner: ThomasCode92
- Created: 2025-04-16T09:18:43.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-24T15:32:19.000Z (12 months ago)
- Last Synced: 2025-05-31T23:17:51.598Z (12 months ago)
- Topics: monorepo, reactjs, turborepo
- Language: TypeScript
- Homepage:
- Size: 128 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# FibApp - An (overcomplicated) Fibonacci Calculator
**FibApp** is a purposefully overengineered, multi-service application created
to **learn, experiment with, and explore** foundational concepts in modern web
development. 🚀
> Much of the inspiration for this project comes from
> _[Docker and Kubernetes - The Complete Guide](https://www.udemy.com/course/docker-and-kubernetes-the-complete-guide)_
> by Stephen Grider. For those aiming to master _Docker and Kubernetes_, this
> resource is highly recommended.
## 🌐 Application Overview

- **Redis Cache** — an in-memory data structure store, used as a cache and
message broker.
- **API Service** — Node.js + [Express](https://expressjs.com/) app that stores
and retrieves Fibonacci numbers from Redis.
- **Worker** — Node.js process that listens on Redis Pub/Sub, computes Fibonacci
numbers, and caches results in Redis.
- **React Server** — [React](https://react.dev/) application built with
[vite](https://vite.dev/) and styled with [Pico CSS](https://picocss.com/).
## 📂 Monorepo Setup with Turborepo
The repository is organized as a monorepo using
[Turborepo](https://turborepo.com/) to manage multiple services and projects.
### Key benefits of using Turborepo
- **Efficient Builds:** Caches and optimizes tasks to speed up development.
- **Unified Management:** Centralizes scripts and dependencies for consistent
tooling.
- **Scalability:** Easily add new services or utilities without complicating the
setup.
### Apps, Packages and Technologies
- `@repo/eslint-config`: `eslint` configurations (includes
`eslint-plugin-prettier`)
- `@repo/typescript-config`: `tsconfig.json`s used throughout the monorepo
- `@repo/vitest-config`: `vitest` configurations, for react and node
This Turborepo has some additional tools already setup:
- [Pnpm](https://pnpm.io/) as the package manager
- [TypeScript](https://www.typescriptlang.org/) for static type checking
- [ESLint](https://eslint.org/) & [Prettier](https://prettier.io) for code
quality
Make sure the following are installed on your machine:
- [Node.js](https://nodejs.org/) — a JS runtime
- [Docker](https://www.docker.com/) — containerization platform
## 🔗 Useful Links
- [Turbo Documentation](https://turbo.build/repo/docs)
- [Turbo API Reference](https://turbo.build/repo/docs/reference)