Skip to content

Latest commit

 

History

History
60 lines (43 loc) · 2.36 KB

File metadata and controls

60 lines (43 loc) · 2.36 KB

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 by Stephen Grider. For those aiming to master Docker and Kubernetes, this resource is highly recommended.

🌐 Application Overview

architecture diagram

  • Redis Cache — an in-memory data structure store, used as a cache and message broker.
  • API Service — Node.js + Express 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 ServerReact application built with vite and styled with Pico CSS.

📂 Monorepo Setup with Turborepo

The repository is organized as a monorepo using Turborepo 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.jsons used throughout the monorepo
  • @repo/vitest-config: vitest configurations, for react and node

This Turborepo has some additional tools already setup:

Make sure the following are installed on your machine:

🔗 Useful Links