Merge branch 'main' into sprint-1

This commit is contained in:
Arthur Lu 2022-11-14 03:36:01 +00:00
commit 8354e561e5
10 changed files with 184 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

View File

@ -0,0 +1,36 @@
# CI/CD Phase 1
## Overall Pipeline Architecture
Rather than create one large pipeline with many steps which increases complexity, we decided to create many small independent pipelines which work in parallel to conduct code quality checking. Using this strategy, if any one pipeline has issues, we can still continue development without delay, and the quality of code is likely to remain high.
## Overview of Pipeline Features
We've identified 5 major features which we definitely want to implement in the CI/CD pipeline.
- Deployment
- Unit Testing
- Linting
- End To End Validation
- Manual Validation
We created this diagram to demonstrate our strategy of multiple simple pipelines.
![Pipeline Diagram](phase1.drawio.png)
## Finished Features and Implementation
So far the features listed below have been completed to some degree:
- Deployment
- Implemented: action triggered on any push to main, uses the github pages action to publish the app
- ToDo: Add minifications ste between trigger and github pages action
- Unit Testing
- Implemented: action triggers on any PR, uses mocha to perform unit testing on core components
- ToDo: trigger workflow only on certain PRs which relate to JS code
- Linting (JS)
- Implemented: ction triggers on any PR, uses eslint to perform style enforcement on all JS components
- ToDo: trigger workflow only on certain PRs which relate to JS code
## Planned Features and Timeline

View File

View File

@ -0,0 +1,60 @@
# Sprint 1 Retrospective (11/14/2022)
## Team 29: Hackers1995
## Meeting Topic: Sprint 1 Retrospective
## Attendance
1. Rhea Bhutada
2. George Dubinin
3. Sanjit Joseph
4. Kara Hoagland
5. Arthur Lu
6. Mark Rheta
7. Henry Feng
8. Gavyn Etzel
9. Sanjit Joseph
10. Isaac Otero
## Meeting Details
- When: 11/14/2022 at 4:30PM
- Where: On Campus
## Agenda:
Discuss the review, share more detailed thoughts on sprint 1, and create some resolutions for sprint 2
## Sprint 1 Review Below (for convenience)
## Sprint 1 REVIEW
In collecting feedback during our final sprint the leads decided to ask members individually about their experience during sprint 1 to then summarize these responses. Each member was asked 4 questions with their summarized responses below:
### What do you think worked well in the first sprint?
We resolved to hold each of our sprint 1 meetings in person with a remote option available to members that couldn't attend. We really liked hanging out at the restaurants before working on the sprint and these experiences encouraged psychological safety in the group. We made some noticeable progress which was very encouraging for the group. Specifically, we figured out quite a bit of the CI/CD pipeline details which will help us going forward and we got a solid grasp of what the visual aspects and feel of the website will be.
### What can we improve on for the next sprint?
We ran into trouble early on due to some lack of planning for specific tasks. The members agreed that we should have spent more time defining tasks for specific members and defining goals for our different teams (frontend, backend, and unit testing). There was some concern over members not being able to attend all meetings and we think this could have been fixed with regularly scheduled meetings. Some technical concerns were the Javascript unit testing pipeline development lagging behind code development and pipeline requirements being unclear. Perhaps we should write out a style document to guide the automated linting process.
### What was your contribution to the sprint?
* Rhea Bhutada: Worked on the backend features including how to get create new review card page to open in a new window
* Gavyn Etzel: Helped with javascript side of things for website
* Henry Feng: Local image store and meeting support
* Sanjit: Default photo design and frontend star rating css
* Daniel: Helped modify html, added upload file feature
* Arthur Lu: Added JS Linting, Unit testing pipeline actions and rote a few simple unit tests; added deployment pipeline action
* Marc Rheta: Added HTML Linting and CSS Linting
* Isaac Otero: Low and mid fidelity wireframes of how our page will look like, Started working on homepage.html
* George Dubinin: Meeting notes, Repo organization, cookies
* Kara Hoagland: CRUD backend functionality
### Was there anything blocking your progress in the sprint?
Communication was challenging especially for members that would attend over Zoom and it was a challenge keeping track of each member's progress. We ran into some issues with the branching strategy with branches rapidly multiplying at points and the GitHub tags not working. The biggest technical issue we experienced involved Node and ES6 compatibility issues.
Overall we feel that sprint 1 was a success with many lessons learned. Our enthusiasm for the project is only building and we are excited to get back into it with sprint 2 after a much needed short break.
## Resolutions
* Divide up tasks and assign tasks to members
* Define objectives for team groups (frontend, backend, and unit testing)
* Scheduled meetings with more notice and keep meetings at a more central location so that more members can attend
* Get the unit testing modules up to date
* To-do: create a style guide
## End Time
- 11/14/2022 at 5:00PM

View File

@ -0,0 +1,16 @@
# Final Project Topic Decision
- Status: accept
- Deciders: team members and TA
- Date: 10 / 27 / 22
## Decision Drivers
- Needed to develop a local-first, CRUD application that would be simple enough to implement in the next few weeks
## Considered Options:
- Social Media Archive
- Resume Builder
- Copy/Paste
- Food Journal
## Decision Outcome
Chosen Option: Food Journal, which allows users to hold their thoughts and ratings on meals and restaurants that they have been to. It is local-first, CRUD app, and fun. Therefore, we decided to choose this.

View File

@ -0,0 +1,15 @@
# Finalized App Design on Figma
- Status: accept
- Deciders: Isaac Otero
- Date: 11 / 08 / 22
## Decision Drivers:
- Needed to figure out the wireframe and flow of our app
- Needed to visualize the different features
## Considered Option:
- Different feature option
- Color Scheme, font, spacing, and other design options were discussed
## Decision Outcome:
- Chosen Option: Design can be found at this link: https://www.figma.com/file/Qhugp1Dd0gPnJTbmmUIvsa/Wireframe?node-id=36%3A2

View File

@ -0,0 +1,19 @@
# Use multiple CI/CD pipelines in parallel
- Status: accept
- Deciders: Arthur Lu, Marc Reta
- Date: 11 / 12 / 22
## Decision Drivers
- Need to perform many different CI/CD tasks
- Need pipeline to be durable against any single failure
## Considered Options
- Single deep pipeline
- Multiple short pipelines in parallel
## Decision Outcone
Chosen Option: Multiple short pipelines in parallel as any one failure will not prevent code from being developed and deployed.

View File

@ -0,0 +1,19 @@
# Use eslint for JS linting framework
- Status: accept
- Deciders: Arthur Lu, Marc Reta
- Date: 11 / 12 / 22
## Decision Drivers
- Need linting to work with multiple style standards
- Need linting to be fast and informative
## Considered Options
- JSLint
- eslint
## Decision Outcome
Chosen Option: eslint for its low configuration complexity.

View File

@ -0,0 +1,19 @@
# Use mocha for JS unit testing framework
- Status: accept
- Deciders: Arthur Lu, Marc Reta
- Date: 11 / 12 / 22
## Decision Drivers
- Need specification on how to write unit testing assertion statements
- Need framework to perform unit testing quickly for immediate code feedback
## Considered Options
- JUnit5
- Jest
- Mocha
## Decision Outcome
Chosen Option: Mocha because it was significantly faster to run than Jest (1s vs 30s), and can use a variety of assertion styles unlike JUnit5.