Skip to content

💡 Modern Fullstack Application for Sharing Fastlane Ideas

Notifications You must be signed in to change notification settings

flolu/centsideas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


CentsIdeas

Full stack application for sharing Fastlane ideas based on the CENTS commandments by MJ DeMarco

Motives

Backend

CentsIdeas is running on small services within a Kubernetes cluster. All requests coming from the outside go into the gateway. From there remote procedure calls are used to communicate with speicific services. Every service has it's own database.

Event Sourcing

Often systems just store the current state of the system. With event sourcing it is possible to know every state at any point of time. Events are the source of truth. Projectors listen for events and project events to the current state. Thus we can separate the write and read side and the current state behaves just like a cache.

Web Application

The frontend is a progressive web application, which is sends a server side rendered copy to the client first, to improve search engine optimization and initial load time. CentsIdeas also tries to make user experience better by using a clean user interface and realtime data.

Development

All the code for this project is contained in this one monorepo, which is made possible with the help of Bazel and Typescript. Developers can see changes in realtime through Docker Compose and run the code in a local Microk8s cluster to simulate the production environment.

The goal is to have unit and integration tests spaning across all services and packages, such that new features can be delivered to production frequently.

Miscealenous

This project also aims to be compliant with GDPR.

Documentation

Setup your development environment on Ubuntu

Develop CentsIdeas

Run a local Kubernetes cluster on Ubuntu

Deploy CentsIdeas to Google Cloud Platform

Thanks to all the people listed below!

@rayman1104 @xmontero @marcus-sa @joeljeske