Skip to content

Commit 75f4192

Browse files
Merge pull request #26 from oss-slu/project_shelter_volunteers
Project shelter volunteers
2 parents 0352035 + 87a9bf0 commit 75f4192

File tree

5 files changed

+117
-0
lines changed

5 files changed

+117
-0
lines changed

docs/shelter_volunteers/about.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
---
2+
id: about
3+
title: Homeless Shelter Volunteer Scheduling Application
4+
custom_edit_url: null
5+
---
6+
<!-- A header image is optional; if used should be no greater than 200x600 -->
7+
<!--![Header Alt Text](header.png) -->
8+
9+
## Overview
10+
11+
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.
12+
13+
### Information
14+
15+
- **Source Code:** <https://github.com/oss-slu/shelter_volunteers>
16+
- **Client** Tim Huffman (House Everyone StL)
17+
- **External Mentors** Women in Technology Group (WWT), GetHelp
18+
- **Current Tech Lead:** Kate Holdener [GitHub](https://github.com/kate-holdener) [LinkedIn](https://www.linkedin.com/in/kate-holdener-ba032a3/)
19+
- **Developers:**
20+
- [Abhilash Kotha](https://github.com/AbhilashKotha)
21+
- [Logan Wyas](https://github.com/loganwyas)
22+
- [Saiteja Gollapalli](https://github.com/Sai9797)
23+
- **Start Date:** August, 2023
24+
- **Adoption Date:** August, 2023
25+
- **Technologies Used:**
26+
- React
27+
- Flask
28+
- MongoDB
29+
- pytest, pylint
30+
- **Type:** Web Application
31+
- **License:** [MIT](https://opensource.org/license/mit)
32+
33+
## Users
34+
35+
The software will be deployed as a web application, and users will access the application through a web browswer. They will create an account,
36+
sign in and navigate the user interface to:
37+
* Schedule work shifts
38+
* See upcoming work shifts (possibly cancel some of them)
39+
* See previous work shifts
40+
* See the impact they have created (number of hours served, number of shelters helped, number of lives touched).
41+
42+
## Technical Information
43+
44+
The application is integraed with [GetHelp](https://gethelp.com/) API, for retrieving shelter information and user authentication.
45+
Integrating with GetHelp authentication API requires an API key. The development version of the application can be run in a 'bypass authentication'
46+
mode, that will bypass GetHelp authentication API and allow anyone to run the code in a development environment.
47+
48+
49+
## Software Architecture Overview
50+
51+
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.
52+
![Software Architecture Context Diagram](context.png)
53+
54+
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.
55+
![Software Architecture Container Diagram](container.png)
56+
57+
## Development Priorities
58+
59+
- Complete volunteer scheduling functionality
60+
- Improve UI/UX
61+
- Deploy application for user testing
62+
- User testing
63+
- Develop shelter staff dashboard
64+
- Deploy application for general use
65+
66+
67+
## Get Involved
68+
69+
<!-- A group photo is optional; if used should be no greater than 800x800 -->
70+
<!--![Group Photo Alt Text](group.jpg) -->
71+
Developers joining the project should follow the instructions in the
72+
[README](https://github.com/oss-slu/shelter_volunteers/blob/main/README.md)
73+
file of the project repository to run the application in a development environment.
54.7 KB
Loading
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
@startuml
2+
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml
3+
!define DEVICONS https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/devicons
4+
!define FONTAWESOME https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/font-awesome-5
5+
6+
!include DEVICONS/react.puml
7+
!include DEVICONS/python.puml
8+
!include DEVICONS/mongodb.puml
9+
!include FONTAWESOME/users.puml
10+
LAYOUT_WITH_LEGEND()
11+
12+
Person(Volunteer, "Volunteers", "Shelter volunteers", $sprite="users")
13+
Person(ShelterStaff, "Shelter Staff", "Shelter staff")
14+
Boundary(b1, "Our System"){
15+
Container(schedulingAppClient, "Application User Interface", "React", $sprite="react")
16+
Container(schedulingAppServer, "Server-side application", "Flask", $sprite="python")
17+
ContainerDb(schedulingData, "Scheduled Shifts", "MongoDB", $sprite="mongodb")
18+
}
19+
System_Ext(getHelp, "GetHelp Platform")
20+
21+
Rel(Volunteer, schedulingAppClient, "Use", "Web Browswer")
22+
Rel(ShelterStaff, schedulingAppClient, "Uses", "Web Browser")
23+
Rel(schedulingAppClient, getHelp, "Find nearby shelters", "HTTPS")
24+
Rel(schedulingAppClient, schedulingAppServer, "Sends/requests scheduling", "HTTPS")
25+
Rel(schedulingAppServer, getHelp, "Requests shelter data, verifies authentication", "HTTPS")
26+
Rel(schedulingAppServer, schedulingData, "Reads/Writes")
27+
@enduml
26 KB
Loading
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
@startuml
2+
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml
3+
!define FONTAWESOME https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/font-awesome-5
4+
!include FONTAWESOME/users.puml
5+
LAYOUT_WITH_LEGEND()
6+
7+
Person(Volunteer, "Volunteers", "Shelter volunteer", $sprite="users")
8+
Person(ShelterStaff, "Shelter Staff", "Shelter staff")
9+
Boundary(b1, "Our System"){
10+
System(schedulingApp, "Volunteer Scheduling Application", "Web Application")
11+
}
12+
System_Ext(getHelp, "GetHelp Platform")
13+
14+
Rel(Volunteer, schedulingApp, "Uses", "Web Browswer")
15+
Rel(ShelterStaff, schedulingApp, "Uses", "Web Browser")
16+
Rel(schedulingApp, getHelp, "Requests data", "HTTPS")
17+
@enduml

0 commit comments

Comments
 (0)