This repository stores the project for the Curricular Unit of Large Scale Distributed Systems project from FEUP.
This project explores the creation of a local-first shopping list application within the context of Large Scale Distributed Systems. The application combines local device code for data persistence with a cloud component for data sharing and backup storage.
- Users can create shopping lists with a unique ID for sharing.
- List items can have flags, be checked, or have target quantities.
- Concurrency support using various CRDTs.
- Cloud-side architecture designed for high availability and scalability.
Handles database-related components responsible for storing and retrieving crucial data. These module was developed with strong inspiration in DynamoDB's design. It features high scalability, availabilty and durability, through the use of techniques such as vector clocks, consistent hashing and hinted handoff as well as sloppy quorums.
Manages the user interface and interaction layer, enabling seamless interaction with the overall system.
Deals with data synchronization and consistency across the entire system. In this library we can see a very generic implementation of some types of Conflict-free Replicated Data Types (CRDT's).
Contains the slideshows used to present our project and the initial design.
Consult respective service documentation for detailed setup instructions.
This project is licensed under the MIT License, allowing use, modification, and distribution as per the license terms.