Skip to content

An (unnecessarily complex) Fibonacci calculator designed to explore multi-service applications ๐Ÿงฎ๐Ÿ”

Notifications You must be signed in to change notification settings

ThomasCode92/fibapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

8 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

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 Server โ€” React 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:

  • Node.js โ€” a JS runtime
  • Docker โ€” containerization platform

๐Ÿ”— Useful Links

About

An (unnecessarily complex) Fibonacci calculator designed to explore multi-service applications ๐Ÿงฎ๐Ÿ”

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published