# Sprint Retrospective 4


### What Went Well ✨
- **MVP is finished!!!:** Both Developer and Manager View are now minimally finished along with back-end endpoints connected to it, product is now minimally finished!!!!
- **Features:** Now that the MVP has been minimally achieved, we can start working on other features that are *maybe* but are not particularly important to implement such as a landing page and login page
- **Weighting Pros vs. Cons of Dependancies:** As we are getting to closer to code freeze, we need to start considering time constraint as larger factors into our architecture decisions, use more dependancies can speedup our workflow that have built-in functionalities, however this makes our product more prone to dependancy mis-matches, outtages, and security vulnurabilities. 
- **Front-end coding with AI using a wireframe:** Using a basic wireframe with prompts such as `create X page using X/X/Wirefram.png and following X stylesheet` helps create a baseline page for log-in, sign-up and landing page, where it is easy to edit basic elements(text sizing,color,).

### What Didn't Go Well 🚧
- **Problems with AI workflow:** There are numerous errors with the front-end (e.g mis-aligned text, excessive use of emojis and obviously AI-generated captions). This would be a problem if we shipped out this code as is but since we all have a T-shaped understanding of Web-dev, correcting the errors should be easy. However that is easier said than done. AI-generated code is horrendous at editting css files and keeping consistancy across elements.

### Action Items 🎯
| Specific Improvement | Owner  | Success Metric / Connection |
| :--- | :--- | :--- |
| **Fix UI/UX related code generated by gen-ai:** Fix all of the mistakes created by generative-ai to give the product a less slop vibe to it  | Front-end team | Visually Aesthetically consistant UI/UX;| before code freeze|
| **Set up PostgreSQL:** Rewrite the current **SQLite** database with PostgreSQL after considering PostgreSQL to be a better choice for our purpose | Aditya and Jason | Database structure replaces SQLite with PostgreSQL; before code freeze|
| **Set up Beacon and Navigation:** The current backend relies on a lot of event-listener which can cause a significant slowdown in latency times so using Beacon and Navigation for our backend to grab/recieve signals will do our product significant good | Daniel and Woosik | Backend implements Beacon and Navigation API; before code freeze|
| **Connect Back-end endpoints to new pages:** Implement Clerk API for authentication serivices for login/sign-up pages | Aditya and Jason | You can sucessfully sign-up and login to your own personal dashboard; before code freeze|



### Lessons Learned 💡
* **The "Gen-AI Baseline" Paradox:** Generative AI is incredibly efficient for rapidly creating crude page layouts from a wireframe, but it introduces 'slop debt'.We learned that relying on AI for styling requires robust human oversight, as it struggles with CSS consistency and requires manual refinement to fix alignment issues and 'slopiness' of AI-generated content.
* **The Dependency Balancing Act:** We realized that while third-party dependencies (like Clerk API for authentication) drastically accelerate our workflow to help us meet tight deadlines, they require a deliberate risk assessment regarding long-term security, maintenance, and potential dependency mismatches.
* **The Value of T-Shaped Skillsets:** Having a team with a broad understanding of web development is our safety net. Whether it be AI-generated frontend code or backend latency bottlenecks, having members who can pivot and understand both sides of the stack ensures we can debug quickly.

---

# Decision Logs

## Sprint 4
- [x] Create WatchTower landing page content and information architecture [#60]
- [x] Implement landing page UI with Login / Sign Up CTA [#61]
- [x] Build static Login and Sign Up screens [#62]
- [x] Navigation polish (Back, Return Home, and route consistency) [#63]
- [x] UI quality pass to reduce AI-generated look and improve visual coherence [#64]3
- [x] Define and implement dual dashboard modes (Executive View + Developer View)[#65]
- [x] Change the logo to be only one since there is no difference between the dark mode and light mode logo.[#71]
- [x] Research Clerk and Resend as possible integrations for WatchTower. The goal is to evaluate whether Clerk should be used for login/authentication and whether Resend should be used to send email alerts when WatchTower detects high-risk issues.[#78]
- [ ] Polishing up UI[#87] 

