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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjI0MTQ5MzcsIm5iZiI6MTcyMjQxNDYzNywicGF0aCI6Ii80MTc0NDcyLzMwNDM5NzM2NC1lODllMDE1OC0yOTc0LTRhNjQtODgzZS1jOGVhMjdjYzI2NzcucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDczMSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MzFUMDgzMDM3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MjlkYWVjN2E2NGEzZjQ5MDI1ZjUwOTI0OTE5YWU3NzYwNDJlZGZiN2Q5NDkwZGQ2N2UxNzI5MzM3ZGNjMmNiYiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.FI6YIx7kwTlBL_EjikaAOO5SiRGHVxyMbNiAD6CXIB8)
- 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