-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Project shelter volunteers #26
Merged
Merged
Changes from all commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
5575164
added shelter volunteer scheduling app project description
kate-holdener 1366e07
minor edits
kate-holdener 261bdd2
added software architecture context diagram
kate-holdener 7e257e2
WIP: container diagram of software architecture
kate-holdener 1cd25e9
added details of the application architecture
kate-holdener 4d93a26
updated context
kate-holdener 405e716
removed old image
kate-holdener 87a9bf0
readded context
kate-holdener File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
--- | ||
id: about | ||
title: Homeless Shelter Volunteer Scheduling Application | ||
custom_edit_url: null | ||
--- | ||
<!-- A header image is optional; if used should be no greater than 200x600 --> | ||
<!--![Header Alt Text](header.png) --> | ||
|
||
## Overview | ||
|
||
Homeless shelters rely on volunteers' help. When incliment weather strikes, homeless shelters get filled with people that need a place to stay, and volunteers' help becomes even more important. There are many people willing to volunteer, but knowing which shelter lacks help is a challenge. The purpose of this application is to simplify the process of scheduling work shifts for volunteers, and to give homeless shelters visibility into their upcoming staffing. The application allows volunteers to select shelters and times when they want to work, see which shelters (and which times) urgently need help, and cancel/reschedule their shifts. The application will also allow shelter staff to see who is scheduled to help at their shelter on different dates and different times, and issue a 'call for help' when help is needed urgently. | ||
|
||
### Information | ||
|
||
- **Source Code:** <https://github.com/oss-slu/shelter_volunteers> | ||
- **Client** Tim Huffman (House Everyone StL) | ||
- **External Mentors** Women in Technology Group (WWT), GetHelp | ||
- **Current Tech Lead:** Kate Holdener [GitHub](https://github.com/kate-holdener) [LinkedIn](https://www.linkedin.com/in/kate-holdener-ba032a3/) | ||
- **Developers:** | ||
- [Abhilash Kotha](https://github.com/AbhilashKotha) | ||
- [Logan Wyas](https://github.com/loganwyas) | ||
- [Saiteja Gollapalli](https://github.com/Sai9797) | ||
- **Start Date:** August, 2023 | ||
- **Adoption Date:** August, 2023 | ||
- **Technologies Used:** | ||
- React | ||
- Flask | ||
- MongoDB | ||
- pytest, pylint | ||
- **Type:** Web Application | ||
- **License:** [MIT](https://opensource.org/license/mit) | ||
|
||
## Users | ||
|
||
The software will be deployed as a web application, and users will access the application through a web browswer. They will create an account, | ||
sign in and navigate the user interface to: | ||
* Schedule work shifts | ||
* See upcoming work shifts (possibly cancel some of them) | ||
* See previous work shifts | ||
* See the impact they have created (number of hours served, number of shelters helped, number of lives touched). | ||
|
||
## Technical Information | ||
|
||
The application is integraed with [GetHelp](https://gethelp.com/) API, for retrieving shelter information and user authentication. | ||
Integrating with GetHelp authentication API requires an API key. The development version of the application can be run in a 'bypass authentication' | ||
mode, that will bypass GetHelp authentication API and allow anyone to run the code in a development environment. | ||
|
||
|
||
## Software Architecture Overview | ||
|
||
We defie the context of our software system in the diagram below. Users (volunteers) and shelter staff will access the application through a web browser, and sign-in to their account with their own credentials. Our application relies on GetHelp system for shelter specific data and for authentication. | ||
![Software Architecture Context Diagram](context.png) | ||
|
||
The details of the different containers within our system are shown in the picture below. The user interface of the application (the client side of our system) is written in React. The client side uses GetHelp API to locate nearby shelters. The client side of the application sends requests to sign in, save/retrieve user specific work shift data, and calculate the times when shelters need the most help to our server-side application. The server-side application communicates with the database to read/write user specific data. | ||
![Software Architecture Container Diagram](container.png) | ||
|
||
## Development Priorities | ||
|
||
- Complete volunteer scheduling functionality | ||
- Improve UI/UX | ||
- Deploy application for user testing | ||
- User testing | ||
- Develop shelter staff dashboard | ||
- Deploy application for general use | ||
|
||
|
||
## Get Involved | ||
|
||
<!-- A group photo is optional; if used should be no greater than 800x800 --> | ||
<!--![Group Photo Alt Text](group.jpg) --> | ||
Developers joining the project should follow the instructions in the | ||
[README](https://github.com/oss-slu/shelter_volunteers/blob/main/README.md) | ||
file of the project repository to run the application in a development environment. |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
@startuml | ||
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml | ||
!define DEVICONS https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/devicons | ||
!define FONTAWESOME https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/font-awesome-5 | ||
|
||
!include DEVICONS/react.puml | ||
!include DEVICONS/python.puml | ||
!include DEVICONS/mongodb.puml | ||
!include FONTAWESOME/users.puml | ||
LAYOUT_WITH_LEGEND() | ||
|
||
Person(Volunteer, "Volunteers", "Shelter volunteers", $sprite="users") | ||
Person(ShelterStaff, "Shelter Staff", "Shelter staff") | ||
Boundary(b1, "Our System"){ | ||
Container(schedulingAppClient, "Application User Interface", "React", $sprite="react") | ||
Container(schedulingAppServer, "Server-side application", "Flask", $sprite="python") | ||
ContainerDb(schedulingData, "Scheduled Shifts", "MongoDB", $sprite="mongodb") | ||
} | ||
System_Ext(getHelp, "GetHelp Platform") | ||
|
||
Rel(Volunteer, schedulingAppClient, "Use", "Web Browswer") | ||
Rel(ShelterStaff, schedulingAppClient, "Uses", "Web Browser") | ||
Rel(schedulingAppClient, getHelp, "Find nearby shelters", "HTTPS") | ||
Rel(schedulingAppClient, schedulingAppServer, "Sends/requests scheduling", "HTTPS") | ||
Rel(schedulingAppServer, getHelp, "Requests shelter data, verifies authentication", "HTTPS") | ||
Rel(schedulingAppServer, schedulingData, "Reads/Writes") | ||
@enduml |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
@startuml | ||
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml | ||
!define FONTAWESOME https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/font-awesome-5 | ||
!include FONTAWESOME/users.puml | ||
LAYOUT_WITH_LEGEND() | ||
|
||
Person(Volunteer, "Volunteers", "Shelter volunteer", $sprite="users") | ||
Person(ShelterStaff, "Shelter Staff", "Shelter staff") | ||
Boundary(b1, "Our System"){ | ||
System(schedulingApp, "Volunteer Scheduling Application", "Web Application") | ||
} | ||
System_Ext(getHelp, "GetHelp Platform") | ||
|
||
Rel(Volunteer, schedulingApp, "Uses", "Web Browswer") | ||
Rel(ShelterStaff, schedulingApp, "Uses", "Web Browser") | ||
Rel(schedulingApp, getHelp, "Requests data", "HTTPS") | ||
@enduml |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This might me a small detail but may be we can mention that they sign in using their GetHelp account and not a separate one.