hack4impact-calpoly / habitat-for-humanity Goto Github PK
View Code? Open in Web Editor NEWA scheduling platform to help with donation pickups for the nonprofit Habitat for Humanity, San Luis Obispo.
A scheduling platform to help with donation pickups for the nonprofit Habitat for Humanity, San Luis Obispo.
This is a research task. No code is required to complete this issue, but feel free to follow demos/tutorials to get a working test (if desired).
This task is meant to get you comfortable with looking for a technology that will be useful for our current project, with the end goal of implementing it into our app. It will help you learn how to judge pros and cons when choosing technologies, and understand how our app is built from the ground-up. As you can tell, it's harder for me to outline a step-by-step process for this type of task, but I have a few goals in mind:
No need to submit a pull request for this task, just let me know when it's complete!
Create the "Make a Donation - Location" screen based on Figma. Don't worry about the navbar at the top for this task (this will be assigned in a separate issue). This screen is extremely similar to the "Make a Donation - Item View" #9 so please reuse any components already coded in said screen when making this one.
/frontend/src/components/
.tsx
file with the same name as the folderApp.js
file with your new component, or else you wont see any changes you make. This file is located in /frontend/src/
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Add basic routing to the app. Let me know if you have any questions.
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Create the "Profile" screen based on Figma. Don't worry about the navbar at the top for this task (this will be assigned in a separate issue).
/frontend/src/components/
.tsx
file with the same name as the folderApp.js
file with your new component, or else you wont see any changes you make. This file is located in /frontend/src/
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Connect the current unstyled amplify login page, create account page, and forgot password page with our styled Habitat For Humanity /auth
screens
This video should be really helpful: https://www.youtube.com/watch?v=t1Sceb1tmvA
Also feel free to reach out to me! I'm here to help! @ObjectJosh
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Responsively switch to mobile view for "Make a Donation - Schedule (Drop off)/(Pickup)" page based on Figma.
(Screens less than 640px width)
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Create a basic forgot password page based on Figma. Include error handling for input fields. If an error occurs, an alert pops up describing the error. Store all input fields in a state variable so it can be formatted as a JSON object later
/frontend/src/components/
.tsx
file with the same name as the folderApp.js
file with your new component, or else you wont see any changes you make. This file is located in /frontend/src/
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Create admin view's active donations page based on Figma.
Use Materials UI for the bulk of this table view!
/frontend/src/components/admin/
.tsx
file with the same name as the folderApp.js
file with your new component, or else you wont see any changes you make. This file is located in /frontend/src/
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Create the home page screen based on Figma. Don't worry about the navbar at the top for this task (this will be assigned in a separate issue).
/frontend/src/components/
.tsx
file with the same name as the folderApp.js
file with your new component, or else you wont see any changes you make. This file is located in /frontend/src/
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Create a basic "create an account" page based on Figma. Include error handling for input fields. If an error occurs, an alert pops up describing the error. Store all input fields in a state variable so it can be formatted as a JSON object later
* Note: I would just name this component CreateAccount, rather than CreateAnAccount
/frontend/src/components/
.tsx
file with the same name as the folderApp.js
file with your new component, or else you wont see any changes you make. This file is located in /frontend/src/
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Import and use color variables in /frontend/src/config/colors.css
for "Create an Account" screen.
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Create the "[Contact Info Added] Make a Donation - Review + Submit (Drop off/Pickup)" screen based on Figma. These components are basically done in previous pages. Please reuse as much as possible!
/frontend/src/components/
.tsx
file with the same name as the folderApp.js
file with your new component, or else you wont see any changes you make. This file is located in /frontend/src/
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Create the navbar based on Figma. This should basically be a component that is on top of certain screens, so take that into account when building this.
/frontend/src/components/
.tsx
file with the same name as the folderApp.js
file with your new component, or else you wont see any changes you make. This file is located in /frontend/src/
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Create the "Make a Donation - Schedule (Drop off)" screen based on Figma. Don't worry about the navbar at the top for this task (this will be assigned in a separate issue). For this screen, please reuse this component: instead of coding it from scratch. Check the Figma to see which screen you may be able to get it from! (Hint: it's also in the donator view) The component should be completed by the time you start this task... but if not, just leave said component blank and let me know in a comment when submitting the pull request.
/frontend/src/components/
.tsx
file with the same name as the folderApp.js
file with your new component, or else you wont see any changes you make. This file is located in /frontend/src/
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Responsively switch to mobile view for "Log In" page based on Figma.
(Screens less than 640px width)
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Create the "Make a Donation - Next Steps" screen based on Figma. Don't worry about the navbar at the top for this task (this will be assigned in a separate issue). For this screen, please reuse this component:
and adjust it according to your screen on Figma, instead of coding it from scratch. Check the Figma to see which screen you may be able to get it from! (Hint: it's also in the donator view) The component should be completed by the time you start this task... but if not, just leave said component blank and let me know in a comment when submitting the pull request.
/frontend/src/components/
.tsx
file with the same name as the folderApp.js
file with your new component, or else you wont see any changes you make. This file is located in /frontend/src/
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Connect our frontend "Create Account Page" to add new users/accounts to our database.
Currently users can create multiple accounts within our user database with the same information. Before adding a new user/account, check that the email isn't already in our database. This should prevent creating duplicate users/accounts if there is already an account linked to the email.
Finally, on your pull request, please request a code review from (@ObjectJosh)
Navbar and underline moves over a little after selecting.
This is a minor issue. Labeled "wontfix". Will fix after MVP.
Responsively switch to mobile view for "Forgot Password" page based on Figma.
(Screens less than 640px width)
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Recommendations
Responsively switch to mobile view for "Home Page" page based on Figma.
(Screens less than 640px width)
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Create the "Make a Donation - Item Info" screen based on Figma. Don't worry about the navbar at the top for this task (this will be assigned in a separate issue). For the "Upload Your Images" section, just have it match the Figma for now, no need to code functionality for this part.
/frontend/src/components/
.tsx
file with the same name as the folderApp.js
file with your new component, or else you wont see any changes you make. This file is located in /frontend/src/
Finally, on your pull request, please request a code review from me (@ObjectJosh)
This is an interesting one. If you compare the desktop view vs. the mobile view, you can see that the schedule process is "split". If it's mobile view, it directs you to this page to reduce over-cluttering. Let me know if you're not sure what I'm talking about.
Responsively switch to mobile view for "Make a Donation - Time Availability" page based on Figma.
(Screens less than 640px width)
Finally, on your pull request, please request a code review from me (@ObjectJosh)
This is a research and testing task. Some code may be required to prove functionality, if possible.
This task is meant to get you comfortable with Express.js. As you learned in the bootcamp, Express is used in the backend. You'll be applying what you learned and did in bootcamp into our app. As you can tell, it's harder for me to outline a step-by-step process for this type of task, but I have a few goals in mind:
/backend
folder, server.ts
file, and installed Express already <--(Express.js steps 1 & 2)For Reference:
If you got to the point of setting it up in the app/testing it, submit a pull request!
Create the "Profile - Edit" screen based on Figma. Don't worry about the navbar at the top for this task (this was assigned in a separate issue).
/frontend/src/components/
.tsx
file with the same name as the folderApp.js
file with your new component, or else you wont see any changes you make. This file is located in /frontend/src/
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Just like in your bootcamp, in this task you'll need to edit the server.js
file in /backend
and connect files in the /api
folder you create.
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Create the success page based on Figma. Include error handling for input fields. If an error occurs, an alert pops up describing the error. Store all input fields in a state variable so it can be formatted as a JSON object later
/frontend/src/components/
.tsx
file with the same name as the folderApp.js
file with your new component, or else you wont see any changes you make. This file is located in /frontend/src/
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Responsively switch to mobile view for "Make a Donation - Review (Drop Off)/(Pickup)" page based on Figma.
(Screens less than 640px width)
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Set up AWS Amplify for our app
If you got to the point of setting it up in the app/testing it, submit a pull request!
Create the "Make a Donation - Review + Submit" page based on Figma. There are three screens for it on Figma, "Make a Donation - Review + Submit (Drop off)", "Make a Donation - Review + Submit (Pick up)", and "[Multiple Photos] Make a Donation - Schedule + Submit (Pick Up)", but it is really just one page (see image at the bottom of this issue). Please conditionally render the "ReStore Drop Off Hours" vs. "Time Availability" based on the user's input when they filled out their Scheduling section. See images:
For this issue, you don't need to grab any real data from previous screens... we'll do that later. I would recommend making some "dummy data" and displaying it as on the Figma (let me know if you have any questions on this). As always please reuse code -- anything you find similar from previous screens! Don't worry about the navbar at the top for this task (this will be assigned in a separate issue).
/frontend/src/components/
.tsx
file with the same name as the folderApp.js
file with your new component, or else you wont see any changes you make. This file is located in /frontend/src/
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Email confirmation of details when donor submits a new request.
Create the "Profile - Edit" screen based on Figma. Don't worry about the navbar at the top for this task (this will be assigned in a separate issue).
/frontend/src/components/
.tsx
file with the same name as the folderApp.js
file with your new component, or else you wont see any changes you make. This file is located in /frontend/src/
Finally, on your pull request, please request a code review from me (@ObjectJosh)
This is a research and testing task. Some coding shall be done to prove functionality. We need to find the best library/API to implement into our app to fit the calendar scheduling needs based on the Figma.
For Reference:
If you got to the point of setting it up in the app/testing it, submit a pull request!
Add the rest of the donator routing to the app. Let me know if you have any questions.
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Create admin view's donation approval - donation info page based on Figma.
Most of this task is just making the card that it's contained in. The content is exactly the same as the screen made in #74
/frontend/src/components/admin/donationApproval
.tsx
file with the same name as the folderApp.js
file with your new component, or else you wont see any changes you make. This file is located in /frontend/src/
Finally, on your pull request, please request a code review from me (@ObjectJosh)
The content for the Create Account Page isn't fitted correctly within the card.
(https://www.figma.com/file/MNRQAXLXzBqCR3aRZmXg0T/Habitat-for-Humanity).
Most of this task is just making the card that it's contained in. The content is exactly the same as the screen made in #74
Screen location: http://localhost:3000/Donor/Donate/ScheduleDropoffPickup
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Create* the "Make a Donation - Schedule (Pickup)" screen based on Figma. Don't worry about the navbar at the top for this task (this will be assigned in a separate issue). This is a harder component to code, and definitely may take more than a week, so let me know if you're struggling with anything. Just do as much as you can in the current sprint, and I may need to reassign you to complete this for the next sprint.
NOTE: You will be conditionally rendering this part
when the "I need the item to be picked up" radio button is chosen.
*You are NOT making a completely new screen, you are adding to/updating the screen made in #11.
Please look into React's Materials UI library to see if you can implement any similar components. Doesn't have to look exactly the same if you're implementing a component (check in with @ObjectJosh!)
/frontend/src/components/donation
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Responsively switch to mobile view for "Make a Donation - Location" page based on Figma.
(Screens less than 640px width)
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Responsively switch to mobile view for "Create An Account" page based on Figma.
(Screens less than 640px width)
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Responsively switch to mobile view for "Make a Donation - Item Info" page based on Figma.
(Screens less than 640px width)
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Create a basic login page based on Figma. Include error handling for input fields. If an error occurs, an alert pops up describing the error. Store all input fields in a state variable so it can be formatted as a JSON object later
/frontend/src/components/
.tsx
file with the same name as the folderApp.js
file with your new component, or else you wont see any changes you make. This file is located in /frontend/src/
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Get rid of current hardcoded colors in css files & import colors.css config.
Make make the frontend calendar working, format the date & times for the DB. For more info on the DB date formatting, feel free to message @brandonhuynh1
(https://www.figma.com/file/MNRQAXLXzBqCR3aRZmXg0T/Habitat-for-Humanity).
Most of this task is just making the card that it's contained in. The content is exactly the same as the screen made in #74
Screen location: http://localhost:3000/Donor/Donate/ScheduleDropoffPickup
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Add show/hide password buttons on to the existing screens created in #1 and #2 pages based on Figma.
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Create admin view's donation approval - scheduling info page based on Figma.
Most of this task is just making the card that it's contained in. The content is exactly the same as the screen made in #74
/frontend/src/components/admin/donationApproval
.tsx
file with the same name as the folderApp.js
file with your new component, or else you wont see any changes you make. This file is located in /frontend/src/
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Responsively switch to mobile view for "Profile" page based on Figma.
(Screens less than 640px width)
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Responsively switch to mobile view for "Make a Donation - Confirmation" page based on Figma.
(Screens less than 640px width)
Finally, on your pull request, please request a code review from me (@ObjectJosh)
Create admin view's donation approval - receipt page based on Figma.
This task is just adding the receipt content inside the card already created in #96
Finally, on your pull request, please request a code review from me (@ObjectJosh)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.