This is a small frontend application that was built to explore different variations of frontend architecture.
You can check it out here.
![Screenshot 2024-02-13 at 6 42 51 AM](https://private-user-images.githubusercontent.com/4174472/304397364-e89e0158-2974-4a64-883e-c8ea27cc2677.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2Njk1ODYsIm5iZiI6MTczOTY2OTI4NiwicGF0aCI6Ii80MTc0NDcyLzMwNDM5NzM2NC1lODllMDE1OC0yOTc0LTRhNjQtODgzZS1jOGVhMjdjYzI2NzcucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTZUMDEyODA2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZjkyNjAyMjY3ZmE0NmUzNTEzMzZjOTM3MWEyMDYwZmY5YzY4NmZkOWQ5MzU2MjE1YTJhMzIzMGI5N2QyY2IyNiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.AHCVbwjO072WXn4kqltsAYa2mNLcrm3z2ILtLjQB0iA)
- A user can add a journal entry
- A user can delete a journal entry
- A user can favorite a journal entry
- Favorites are saved to local storage. State is hydrated from the favorites stored in local storage upload load.
- When a favorite is deleted, the user will have to confirm deletion
- Using Puppeteer for E2E Acceptance Testing
- Using a Page Object Model to make E2E tests less volatile and more declarative (link)
- Application Level Acceptance Testing (link)
- Cucumber + Gherkins
- Composition Root Pattern (link)
- Reactivity using the Observer Pattern (link)
- Presenters wire up the UI Framework to the application state (link)
- Controllers perform Application Use Cases (link)
- Repositories manage and act upon Global Application State (link)
- Dependency Inversion is used to interface with a Client Storage Interface. This allows us to Code to an Interface and create a proper Stub for Testing (link)
- Outgoing Contract Test to ensure our in-memory client storage works as intended (link)
- Github Actions (link)
- Run Application Acceptance Tests and Unit Tests for PRs
- Run E2E Tests after deploy