hack4impact-calpoly / equestrian-therapy Goto Github PK
View Code? Open in Web Editor NEWThis project forked from hack4impact-calpoly/react-ts-template
A scheduling app for the nonprofit Partners in Equestrian Therapy.
This project forked from hack4impact-calpoly/react-ts-template
A scheduling app for the nonprofit Partners in Equestrian Therapy.
Implement the ability to edit timeslot availability for admins in the file: components/popup/timeslotConfirmation.tsx
. Keep in mind that admins can edit multiple timeslots at a time.
This may include:
Checklist:
Create the frontend for the EnterCode component in the file: enterCode.tsx
.
This may include:
/login
pageChecklist:
Create the frontend for the AddAvailability component in the file: components/addAvailability.tsx
This may include:
Checklist:
Conditionally render either the Calendar component for Desktop devices or the CalendarMobile component for mobile devices. You will need to create the CalendarMobile component in the file /components/calendarMobile.tsx
. As of now the CalendarMobile component should only hold the WeeklyViewMobile component, more will be added later.
This may include:
Checklist:
/
routeExplore creating pop up windows with react and add the Appointment Information content to the bottom left of the popup. Only worry about the desktop view for this task, on mobile we will not be using a popup
This may include:
Checklist:
Implement private routing in the file: components/authentication/privateRoute.tsx
. In other words, make sure that only users that are logged in can access the main functionality.
This may include:
Checklist:
Implement functionality for logging in in the file: login.tsx
.
This may include:
Checklist:
Use Datastore to fetch the timeslots from the database and pass them along where needed in the files: components/calendar.tsx
and components/calendarMobile.tsx
. You will only need to implement the querying logic in one of the files then can copy it to the other.
This may include:
Checklist:
Make dates that have already past unselectable in the MonthlyView
component in the file: components/monthlyView.tsx
.
This may include:
Checklist:
Discuss the data structure for the backend with the team and create the models.
Update the data models in the Amplify database.
Checklist:
Add functionality for the monthly and weekly views to work together in the files: components/weeklyView.tsx
and components/monthlyView.tsx
.
This may include:
Checklist:
Create the frontend for the Success component in the file: success.tsx
. This page should work for confirming the success for creating an account and creating a new password.
This may include:
/login
pageChecklist:
Create the frontend for the CreateAccount component in the file: createAccount.tsx
This may include:
/login
pageChecklist:
createAccount
as a url parameter to the success page: /success
Customize the content of the verification email that users receive when confirming their account sign up. You can find this in the Amplify Studio -> Authentication -> 2. Configure sign up -> Verification message settings. The email should at least include the verification code, the name of the nonprofit (PET or Partners in Equestrian Therapy) , and the PET logo.
This may include:
Checklist:
Add conditional rendering for the color of a timeslot based on the availability of that timeslot in the file: components/weeklyView.tsx
. Desktop Only
This may include:
Checklist:
riderBookings
array will contain booking objects with the date
field which will need to be checked.Create the frontend for the WeeklyView component in the file: weeklyView.tsx
. This component is ONLY the desktop weekly view within the calendar (don't worry about the monthly view or riders/volunteers buttons, or the mobile version). Place this component inside a new Calendar component in the file: calendar.tsx
.
This may include:
Checklist:
Make the blue boxes on the desktop weekly view functional in the files: components/weeklyView.tsx
and components/timeslotPopup
.
This may include:
Checklist:
Add conditional rendering for the color of a timeslot based on the availability of that timeslot in the file: components/mobile/mobileTimeslot.tsx
.
This may include:
Checklist:
components/mobile/mobileTimeslots.tsx
to components/mobile/mobileTimeslot.tsx
(note the s, these are different files)Create the frontend for the AdminToggle component in the file: components/adminToggle.tsx
. This would allow the admins to toggle between the volunteer and rider calendars (or show both)
This may include:
Checklist:
Add the cancel and save/book buttons in the file: components/appointmentPopup.tsx
. This will only be for the desktop view.
This may include:
Checklist:
Create a TimeslotConfirmation component in the file: components/timeslotConfirmation.tsx
. The TimeslotConfirmation will take a prop that indicates whether the user is booking or canceling a timeslot as well as a prop indicating the user type.
This may include:
Checklist:
Assemble all of the pieces of the calendar mobile page in the file: components/mobileCalendar.tsx
. Right now the calendarMobile file only holds the weekly view component but we will need to include the MobileTimeslots component as well as adding the schedule header, the current selected date, and the dropdown menu for admins to select between rider/admin info shown and for riders to select between showing all availability or just their booked slots.
This may include:
Checklist:
Create the frontend for the Timeslots
component in the file /components/timeslots.tsx
and the Timeslot
component in the file /components/timeslot.tsx
. The Timeslots component will consistent of a mapping of Timeslot components. For now, only focus on the Volunteer/Rider view of the timeslots
This may include:
Checklist:
Create the frontend for the Login component in the file: login.tsx
.
This may include:
Checklist:
Connect the timeslot popup, timeslot confirmation popup, and timeslot success popup in the files: components/popup/timeslotPopup.tsx
, components/popup/timeslotConfirmation.tsx
, and components/popup/timeslotSuccess.tsx
.
This may include:
styledComponents.tsx
Checklist:
Currently, the show/hide password icon only shows the eye icon with a slash through it. Fix this to render the normal eye when password is shown. This functionality is in the files: components/login.tsx
, components/createAccount.tsx
, and components/resetPassword.tsx
.
This may include:
eye.svg
imageChecklist:
Create a user object in our database when someone makes an account on the createAccount page in the file: components/authentication/createAccount.tsx
. Currently a user is create in our Cognito user pool upon account creation which handles all authentication requests and tracking, but we would also like to store more information about a user such as their previous bookings so we need to create a corresponding user object in our traditional database to store this info.
This may include:
Checklist:
Standardize some of the styles from last week's frontend tasks (all of the login and authentication pages) and move them to components/styledComponents.tsx
Checklist:
components/styledComponents.tsx
and use it in the code.Implement functionality for creating an account in the files: createAccount.tsx
and enterCode.tsx
.
This may include:
./aws-exports
for the sign up attributesChecklist:
Note that Amplify is already initialized in our dev branch so you don't need to do any amplify setup, you just need to copy in the aws-exports.js file that was sent in the cp-pet slack then import and use the Auth component
Rename the file components/adminToggle.tsx
to components/calendarToggle.tsx
and add conditional rendering for the rider/volunteer toggles. The admin toggles will stay the same but if the user is a volunteer/rider they should be able to see the toggles for "Availability" and "My Slots"
This may include:
Checklist:
Right now, the validation errors are formatted differently across every page. Our designers have updated designs to include what error messages should look like! Change the validation styling in the files: components/login.tsx
, components/forgot-password
.
This may include:
Checklist:
Create the frontend for the MonthlyView component in the file: monthlyView.tsx
. This component is ONLY the desktop monthly view within the calendar (don't worry about the weekly view or riders/volunteers buttons, or the mobile version).
This may include:
Checklist:
Create the frontend for the ResetPassword component in the file: resetPassword.tsx
This may include:
Checklist:
resetPassword
as a url parameter to the success page: /success
Make the frontend content for the Timeslot Mobile dropdown, in a new TimeslotMobileContent component in the file: components/timeslotMobileContent.tsx
.
This may include:
Checklist:
Set up context for user data in the file: App.tsx
. Create the context in a new file called: userContext.tsx
.
This may include:
Checklist:
userContext.tsx
with the properties of our user dataImplement functionality for resetting password in the files: forgotPassword.tsx
, enterCode.tsx
, and resetPassword.tsx
.
This may include:
./aws-exports
for the password attributesChecklist:
Create timeslots on our weeklyView calendar which are reflective of the timeslots in our database. This could either mean:
Creating a CalendarTimeslot
component in the file: components/calendarTimeslot.tsx
. Explore making the CalendarTimeslot
component appear on the weekly calendar view. Maybe you can pass in the padding for the offsets as props as well in some way?
or
Keeping your current logic with styledDivs and having a way to associate each styledDiv with one of the database timeslots so that once it's selected we could open up the popup window for timeslot selection (don't worry about this popup for now but might be good in clarifying the userflow)
This may include:
Checklist:
Create the frontend for the MobileTimeslots
component in the file /components/mobileTimeslots.tsx
and the MobileTimeslot
component in the file /components/mobileTimeslot.tsx
. The MobileTimeslots component will consistent of a mapping of MobileTimeslot components. For now when the dropdown is opened just render/open a blank component
This may include:
Checklist:
Add the logo and the MonthlyView and WeeklyView components in a new Calendar component in the file: components/calendar.tsx
.
EDIT: We will no longer need a "create" button, this will get updated in the design soon.
This may include:
Checklist:
Pass booking information into the AppointmentInfo
component in the file: components/appointmentInfo.tsx
. Add conditional rendering for volunteer information also being displayed in the admin/volunteer views.
This may include:
Checklist:
Create the frontend for the SideBarInfo component in the file: components/sideBarInfo.tsx
. This would include the location/weather information (rider/volunteer view).
EDIT: This task is on pause as the current design is a placeholder.
This may include:
Checklist:
Create the frontend for the ForgotPassword component in the file: forgotPassword.tsx
This may include:
/login
pageChecklist:
Implement a Popup modal in the file: components/timeslotPopup.tsx
and create a timeslotSuccess component in the file components/timeslotSuccess.tsx
which will be rendered inside of the popup modal. This popup modal will be used for the Timeslot selection and Confirmation page as well but just worry about the success message for now.
This may include:
Checklist:
We know all of the timeslots for volunteers and riders on PET work days. Please create these timeslots in our Amplify studio so we can use them later in the project and show them on our page. You can create the timeslots in Amplify Studio -> Content -> Create Timeslot
This may include:
Implement the ability to add new bookings for riders/volunteers in the file: components/popup/timeslotConfirmation.tsx
. Keep in mind that riders can only select one timeslot at a time, while volunteers can select multiple.
This may include:
Checklist:
Assemble the timeslots popup in the file: components/popup/timeslotPopup.tsx
.
Checklist:
Update the WeeklyView component to add a mobile view in the file: weeklyView.tsx
. This component is ONLY the mobile weekly view within the calendar (don't worry about the timeslots).
This may include:
Checklist:
Implement React Router in App.tsx
to route to the correct pages.
(more Pages may need to be determined with org rep in the future)
react-router-dom
App.tsx
:
/
, /login
, /create-account
, /forgot-password
, /enter-code
, /reset-password
, /success
If a page isn't finished yet you can use a dummy element as the element in the router until the page gets finished
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.