Pre-project Wellbeing Report
## How are we feeling?Slightly stressed but driven to want to see this project succeed, mostly feeling good and confident.
As a group, most of us are sleeping pretty well. After a discussion around stress profiles, we mostly decided to ensure communication when we are feeling stressed, taking breaks is essential to our success. One way to mitigate this stress from happening is to acknowledge it openly and walk away for 5 - 10 mins.
None of us have any overly critical work/life commitments. We will be coming into campus on saturday except for Brendan. Sunday will be a rest day.
Daily goals, work to tasks, and stay overtime if tasks are not yet completed. This expectation should enable us to stay on track, sticking to our timeline. The timeline will be on a whiteboard and have clear technology, tasks and expectations for the day.
Regular stand-ups and discussions around the task-flow. At least every 2 hours.
An odd number makes it easier to make decisions through voting. If a conflict arises, the topic will be broken down and mediated with the success of the project at the center. Task-based approach.
A useful outcome to showcase at interviews and for our portfolios. Experience working in a group, and practicing human skills. Getting some fun out of the experience.
When making decisions as a group, it might be a good idea to use an external factor to make the decisions. Also showing evidence/rationale of your ideas during group talks. Give an example.
Google, facilitators, each other.
To ensure inclusion we will be passively mindful of each other's needs/moods.
Based on the user stories and the pairs we will decide who needs to be present.
Git Keeper: Pei Vibe Water: Ash, Brendan Scrum Lead: Tomas Product owner: Zin Design lead: Ash
Socialize, eat together, music and honey time. (on toast)
- Style the NotFound.jsx page.
- Fix responsive styling on Favourites.jsx to account for rating field.
- Style the Favourites.jsx page when the user isn't signed in.
- Optimise images used in ProductCard.jsx - these are restricted to 140px wide and tend to max out at 280px. A folder with 140x280 WEBP optimised images could be created in /public/images/optimised and the 'produce' table can then be updated to include a column with a link to the optimised image.
- Autocomplete search form with in-season produce (optional)
- The ability to filter recipes based on the season or to exclude out of season produce from recipe results.
- Additional nav options that can be shown/hidden. These could allow the user to view/browse what's in season by month or season.
- Display trending and most popular favourites
- Comments
- User photos
- Investigate and implement compression of bundle.js.
- Write a suitable robots.txt so crawlers know how to crawl and/or index the website.
- User recipe ratings
- See what produce is in season.
- See the whole recipe after clicking on the recipe card.
- Search recipe according to vege and/or fruits.
- Able to navigate around the app seamlessly.
- Able to login/logout with Auth0.
- Filter options for dietary preferences.
- Filter options for meal type, i.e. breakfast, lunch, dinner.
- Display details to recipes, e.g. cuisine.
- Able to view and delete Favourites.
- To do list in Favourites.
- React
- Redux
- SQLite3
- Figma
- Material UI ('Mui')
- External API - https://developer.edamam.com/edamam-docs-recipe-api
- Auth0
- Checkout a feature branch. Stage, commit, and push to feature branch - regularly.
- Pull from main branch.
- Resolve merge conflicts.
- Submit a pull request to the dev branch.
- Pull request from dev branch into main is reviewed by the team and may be reviewed by our wonderful volunteer.
- Git keeper merges reviewed pull request to main branch.
- Deployment to Railway App from main to: https://seasoned-production.up.railway.app/
- Recipes:
- Array of objects.
- Source is from the external API.
- Content changes based on user input into the search form and their filters.
- Build query string for external API based on user input.
- UseParams to find the selected recipe and load the recipe details into the detailed view component.
- TODO: add the other store items into the schema here.
Name | Content |
---|---|
id | Unique ID for the fruit/vege |
name | Name of the fruit/vege for use with the external API |
display_name | Name of the fruit/vege for use on Seasoned, includes the Maori word (where available) |
type | Type of the produce, i.e. fruit or veggies |
image | Image of the fruit/vege TODO: switch to open-source images |
Each entry is in this table is a month that the produce is available in New Zealand. Additional tables could be added to track the other types of seasonality: available (imported), limited supply, limited supply (imported), and unavailable.
For an example of this, see: https://www.produce.co.nz/seasonality-chart/
Name | Content |
---|---|
ID | Unique ID for the produce months |
produce_id | ID referencing the produce table |
month_id | ID referencing the months table |
Name | Content |
---|---|
auth0_id | Auth0 ID for the user |
username | The user's chosen username (must be unique) |
created_at | When the record was created |
updated_at | When the record was last updated TODO: add this functionality. |
name | The user's name, added from Auth0 |
The user's email, added from Auth0 | |
image | The user's avatar, default is a Gravatar that's generated on sign-up |
Name | Content |
---|---|
id | id for the favourite |
auth0_id | References the user's ID in the users table |
rating | The user's rating for the favourite TODO: complete this feature |
done | Boolean which functions as a to-do toggle for the user |
url | Link to the full recipe on an external website (the source of the recipe) |
label | The name of the recipe |
METHOD | ENDPOINT | USAGE | RETURNS |
---|---|---|---|
GET | /v1/produce |
Get a list of all produce | An array of produce |
POST | /v1/produce |
Add a new produce | The newly created produce |
PATCH | /v1/produce/:id |
Update an existing produce | The updated produce |
DELETE | /v1/produce/:id |
Delete an existing produce | The number of rows deleted |
METHOD | ENDPOINT | USAGE | RETURNS |
---|---|---|---|
GET | /v1/available/ |
Get all availability of produce | An array of availability |
POST | /v1/available/ |
Add a new availability for a produce | The newly created availability |
PATCH | /v1/available/ |
Update an existing availability for a produce | The updated availability |
DELETE | /v1/available/:id |
Delete an availability by id | The number of rows deleted |
METHOD | ENDPOINT | USAGE | RETURNS |
---|---|---|---|
GET | /v1/available/month/:id |
Get all availability with the same month | An array of availability for that month with name, display_name, and image_url |
GET | /v1/available/produce/:id |
Get all availability for a produce | An array of availability for that produce with name, display_name, and image_url (or an empty array and 200 status okay if there's no availability for that produce) |
GET | /v1/available/season/:season |
Get all availability for a season | An array of availability for that season with name, display_name, and image_url |
METHOD | ENDPOINT | USAGE | RETURNS |
---|---|---|---|
GET | /api/v1/favourites |
All favourites | All favourites |
GET | /api/v1/favourites/:id |
A a favourite by ID | The row for a single favourite |
GET | /api/v1/favourites/user/:auth0_id |
Get all favourites for a user using their auth0_id | An array with all of that user's favourites |
POST | /api/v1/favourites |
Create a new favourite | The ID of the new favourite |
PATCH | /api/v1/favourites/:id |
Update a favourite | The row of the updated favourite |
DELETE | /api/v1/favourites |
Delete a favourite | The number of rows deleted |