or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Syncing
xxxxxxxxxx
HOPE Daily Log
We are building HOPE as our Tech for Better final project for Founders & Coders FAC26.
Contributors: Iman Ghellache, Gal K Jones, Laura Keating, Dominic Simpson
20/3/23
For design week, the group worked together
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →In our initial design, the
landing-page'
would have an 'I'M A VENDOR' button that would lead to asign-up
page. Once the vendor signs up, they would then be directed to thevendor-upload
page, in which they would be prompted to enter some details about themselves (who they are, their address, and phone number). After this, they would then find themselves on afood-upload
page, where they could upload details of the food that they would be giving away. At this point, they would also see a dashboard/navigation bar from now on, giving them a number of options, including abusiness-account
page that lists their details, including an FAQ section:- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →In our initial design, the
landing-page
would have a 'FIND FOOD' button that would take the user to afind-food
page. If they click on each individual food item, that would then come up with afood-description
page, where they can then reserve that item. However, we envisage that at that point they would then be prompted to sign-in before being able to reserve that item.At that point, they would also see a dashboard/navigation bar - but, crucially, one that's different from the vendor dashboard / navigation bar. Therefore, we will need to create two distinct NavBar components, with different icons. The user will see a question mark that will lead to an
information
page; meanwhile, the user would also have their own account page, which lists basic details like full name and email address, as well as some FAQs:And here is the figma wireframe
landing-page
in interactive mode:21/03/23
food-upload
page, we agreed that we will have an existing database of food items instead, rather than the vendor having to create them for the first time. The food vendor would then be able to select from a page,our-food
, where these food items would come up, including setting the quantity:manage
page, where it lists what's avaialable at that vendor address:23/03/23
The group met with Ben and Rihards who will be our mentors. We also agreed on our tech stack for this project after a number of discussions:
24/03/23
First day of build
27/03/23
TESTING
testData.json
file, contained within thefixtures
sub-folder of the rootcypress
branch. This data object ensures that any emails and passwords can be passed in can be verified, rather than having to hard code them each time.FORM
Iman and Gal worked using React Hook Form in order to capture data entered by the vendor on the upload-vendor-form page.
AIRTABLE
Gal rendered data from airtable onto the page using useEffect
UPDATE STOCK PAGE
Was able to fetch from db and render on page. To allow the rendering of page to wait on the data, we needed to resolve to a promise. By making getRecords a Promise, it ensures that the data is properly fetched and returned to the getServerSideProps function before rendering the page.
VENDOR DETAILS UPLOAD FORM
28/3/23
Contacted mentors for possible code review Wednesday afternoon
Vercel failed to deploy and we got a 404 error on the manage-food page due to new Airtable api key not being uploaded to the vercel account page. This is important because the vercel deployment doesn't have access to our .env.local files where our Airtable api keys are kept.
LK: Available-food
Created available food page, fetched vendor data from Airtable and added links to buttons to ensure paths are correct
DS: Sign-in
appearance
prop, which helps you style elements in a 3rd party Component:textTransform: 'upperCase',
for example, which would not make sense in vanilla CSS, where it would betext-transform: uppercase;
. Something similar applies to themarginLeft
command above. Additionally, this version of CSS does not allowpx
orrem
measurement to be added to numerical values.29/3/23
30/03/23
LK: error fixed with find-food db queries so that every collaborators menu items are fetched. Button hover color changed to helped accessibility. Quantity conditional statement added to find-food page to prevent rendering of card for foods that are not available. Researched how to pass props through a link using React-Router-Dom
Sprint review: most of our estimates and actuals matched
Sprint planning: We planned sprint 2 and added stretch goals.
DS: added an automatically generated four-digit pick-up code to the
reservation-successful.js
page. This involved not just employingMath.floor
andMath.random()
in order to do this, but using it together with useEffect and useState hooks, given that that project is employing React. This ensured that both the server-side and client-side were adequately hydrated.3/4/23
4/4/12
vendor-account
page, which shows the vendor's details on the screen.Implementing this page meant gathering data from Airtable on the vendor's specific name, address, and description, and displaying that data on the page, which involved modifying an existing
getServerSideProps()
function so that it displayed elements from theCollaborators
table in Airtable. Meanwhile, afind
method had to be run on thisCollaborators
table in a function calledVendorDetails
, which took thecollaborators
array as a prop. This function used theuseSupabaseClient
anduseSession
hooks to get the current user's email address and match it with the email address of a collaborator in thecollaborators
array.Then the return statement used a simple conditional statement (represented by
&&
) to display the collaborator's name, address, and other fields drawn from Airtable on to the screen: