You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: REPORT.md
+61-14
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,5 @@
1
1
Introduction
2
+
---
2
3
3
4
### What are you building?
4
5
@@ -35,23 +36,24 @@ After feedback from our user research and sprint planning, due to the time const
35
36
36
37
We decided which features to build based on our discussions with the product owner and considering the time limitation of 2, week-long sprints. Our goal is to deliver a functioning MVP that our product owner can use to demonstrate the future potential of the app.
37
38
38
-
###Project plan
39
+
## Project plan
39
40
40
41
### How are you going to structure your sprints?
41
42
42
-
We have divided our main issues into sprint 1 and sprint 2 - in sprint 1 we'll focus on the first two user stories, searching and filtering seeds.
43
+
We have divided our main issues into two, week-long sprints. We will focus on delivering an MVP in teh first sprint and then build new features / refine and refactor in the second sprint.
43
44
44
45
### What order are you going to build in?
45
46
46
-
We are going to focus on building out the front end first - partly because we are unsure as to whether we will have a database or just a js file with dummy data. We will prioritise key issues first, focus on displaying the seeds to start and then filtering them on the page. The wishlist and growing conditions will be made later on in the sprints.
47
+
We are going to focus on building out the front end first, as we do not yet know if the data we need will be available form the PO, or if we will generate dummy data. We will prioritise key issues first, focus on displaying the products and searching/filtering. The wishlist and growing conditions are goals for the second sprint.
47
48
48
49
### How did user research inform your plan?
49
50
50
-
User research validated what the most important features are to build - users found the searching clear and easy to use and were able to filter the results without guidance. Users also enjoyed the clean, simple design.
51
+
User research validated what will be the most important features to build: users found the searching clear and easy to use and were able to filter the results without guidance. Users also enjoyed the clean, simple design.
52
+
51
53
User research revealed there was some confusion around the home page and landing page, so we consolidated these two pages into one and refactored our wireframe.
52
54
While users were really keen on the growing conditions feature, our own research into available APIs revealed that this wasn't going to be possible for us to build as an MVP.
53
55
54
-
###Requirement analysis
56
+
## Requirement analysis
55
57
56
58
### How will you ensure your project is accessible to as many users as possible?
57
59
@@ -63,28 +65,46 @@ Not at the MVP stage. Moving forward, the product owner will need to consider GD
63
65
## Project learnings
64
66
65
67
### Did your team work effectively?
68
+
Yes, we assigned clear team roles and allowed each other the space to work within those roles, whilst still offering help and support and collaborating on more complex challenges. We kept close and open communication, providing honest feedback and also praising each other on achievements. We reviewed each other's code upon merging pull requests and kept all team members informed on changes to the codebase.
66
69
67
70
### What would you do differently next time?
71
+
Communicate the importance of having any data and assets or copy available to the development team by the PO no later than the end of the design phase.
68
72
69
73
## Research and findings
70
74
### What did you find out from user testing?
71
75
- Our initial user flow could be narrowed and focused to make the user experience more intuitive by condensing certain sections of the app into one
72
76
- Users liked the design of the app and found the UI easy to navigate
73
77
## Project outcomes
74
78
### Were your assumptions right or wrong?
79
+
We received feedback from users and from the development team that will be taking this project forward that has validated our assumptions of the overall design, user journey and core features this product should deliver.
80
+
75
81
## Recommendations and conclusions
76
82
### What features would you prioritise to build next?
83
+
Features that were out of scope for this project but could be implemented next are:
84
+
85
+
- Left sidebar for filters in desktop view
86
+
- Relational database and an API for querying
87
+
- Web scraped data
88
+
- Transform wishlist into a shopping cart
89
+
- User authentication
90
+
- Climate data and growing conditions
77
91
### Was the project a success?
78
-
Software Development Lifecycle stages
79
-
Planning
80
-
What roles did your team take on?
81
-
Explain the roles and responsibilities of all people working within the software development lifecycle, and how they relate to the project (K2)
92
+
Yes, we built all the features we set out as core features within the build sprints and received positive feedback from our PO.
82
93
83
94
### Did these roles help your team work effectively?
84
95
Yes, dividing the roles amongst us meant that w ecould collaborate efficiently on development and also contribute to the project based on our roles. We all contributed and worked on issues that were associated with all roles with a clear understanding of who was ultimately responsbile for each role.
85
96
86
97
## Analysis
87
98
### What might be the intended and unintended consequences of building this product?
99
+
Intended:
100
+
- Improve gardener's experience of finding and purchasing seeds
101
+
- Track what people are growing and improve biodiversity
102
+
- Help gardeners raise successful crops by providing growing conditions information and knowledge
103
+
- Improve the business of small, family-owned companies by improving their digital presence and exposing them to new, potential customers
104
+
105
+
Unintended:
106
+
- User data being sold to advertisers or third parties
107
+
88
108
## Design
89
109
### How did you plan a user experience?
90
110
We created detailed, high-fidelity wireframes and tested them with users. We iterated over the wireframe design based on usability testing findings.
@@ -95,13 +115,19 @@ Wireframes - Iteration 2
95
115
96
116
## Implementation/Build
97
117
### How did you ensure your code was good?
98
-
Create logical and maintainable code to deliver project outcomes, explaining their choice of approach. (S1)
118
+
- Testing code to make sure it works as intended
119
+
- Frequent refactoring
120
+
- Tech spike research
121
+
- Following documentation for frameworks and libraries
122
+
- Following file naming and structure conventions
123
+
- Asking for code review from mentors
99
124
100
125
### What interesting technical problems did you have to solve?
101
126
- Dynamic Routing in Nextjs (with no backend)
127
+
- Using React Context to pass state between Next.js pages
102
128
- Managing many React states
103
129
- Filtering user search results
104
-
- Generating a set of dummy data
130
+
- Generating a set of dummy data with Chance library
105
131
- Resolving package-lock.json conflicts
106
132
- Using Web Storage API with React
107
133
@@ -113,17 +139,38 @@ Create logical and maintainable code to deliver project outcomes, explaining the
113
139
114
140
## Test
115
141
### How did you verify your project worked correctly?
116
-
Identify and create test scenarios which satisfy the project specification (S6)
142
+
- Manual testing during development
143
+
- Cypress end-to-end testing
144
+
- Logging React states to ensure they are being passed into components cand pages correctly
145
+
- Reviewing deployment at stand up to catch bugs
146
+
- ESlint to catch syntax errors
117
147
118
148
### Did writing automated tests catch any bugs?
119
-
Analyse unit testing results and review the outcomes, correcting errors. (S4)
149
+
We used Cypress for end-to-end testing. As we were building an MVP, we chose to test the "happy path" to ensure that the core features and functionalities of the desired user flow were working correctly.
150
+
151
+
There is room for improvement by testing edge cases and writing unit tests for helper and database functions.
120
152
121
153
## Deploy
122
154
### Where/how did you deploy your application?
123
-
-Vercel
155
+
As the project was built with Next.js, we opted for deployment with Vercel for optimal performance and compatibility. Vercel also provided helpful debugging logs and an easy handover process.
124
156
125
157
### What problems did you encounter during deployment?
158
+
159
+
We deployed the project successfully at the time of setup. This approach ensured that whenever deployment broke, it was clear what changes to the code had caused the failed build.
160
+
161
+
By using tools like ESlint, we managed to keep build fails to a minimum. With the help of the Vercel logs, we were able to debug and fix failed builds quickly.
126
162
## Maintain
127
163
### Is it easy for someone make changes to the codebase?
164
+
Yes, we have provided installation and development instructions and tech stack details in the project's README.
165
+
166
+
We strived for an organised and clear codebase by following file naming conventions and grouping files in appropriate folders.
167
+
168
+
Our project Kanban board clearly describes what issues and features that have been completed and which commits are linked to which issue.
128
169
129
170
### Could a new person quickly be onboarded to contribute?
171
+
172
+
Yes, as the codebase is still relatively small, a new developer could get to grips with it in a matter of hours.
173
+
174
+
We have developed a design framework of CSS variables and reusable styled components which a developer could use to build a new feature quickly.
175
+
176
+
A new developer can also use our commit message template to align with our workflow.
0 commit comments