Inspiration

Since childhood I was deeply connected with my neighborhood community and we used to talk with each other almost everyday. However overtime communities have become more disconnected than ever. I always wanted to bring my childhood memories back when I used to talk with neighbors and share challenges or problems. Whenever there was an earthquake, the whole neighborhood would come out, but nowadays many people do not come outside and such events are not handled properly within the neighboring community. To address this issue and facilitate communication amongst individuals, we created this app that allows for communication publicly by posting alerts to everyone in the neighborhood and also emailing specific people within the neighborhood.

What it does

It allows an individual in the neighborhood to create an account using their valid email and use a different password. Once the account is created, they can make emergency alerts. Emergency alerts are visible to everyone in their login page and home page publicly. These include information about any suspicious activity in the neighborhood. Regular posts on the other side are visible to only specific people you choose. Both emergency alerts and regular posts send an email to the recipient using the Gmail API.

How we built it

HTML Files
create_account.html: provides the ability to create an account using your email address and password. This disallows the creation of accounts with the same username.
home_page.html: choose whether to login or create a new account and then view all of the posts made by community members.
logged_in.html: a page that is displayed when a user has successfully logged in. It provides the ability to post messages to the entire community (which are sent to everyone's personal emails using Gmail API) and post emergency alerts.
login.html: a page that provides a place to enter your email address and password to login. It displays errors for incorrect username or password.

Python Files urls.py: handles form information sent by the HTML files and calls specific functions in views.py to handle user input.
views.py: these functions extract information from the HTML forms and handle specific tasks such as logging in, signing out, creating account, sending emails, and making posts.

Challenges we ran into

One of the biggest challenge was getting all of the tools setup like installing Django, connecting to Git, and then running the server (which revealed many errors in our code). We had not worked with languages like HTML/CSS for some time and had not worked with Django, so this required exploring a lot of new things and learning them quickly. One of the other most difficult things was connect the Gmail API and we faced errors like enabling two-factor authentication since Gmail added this to their new update. Along with this, merging conflicting changes from both of us led to some code overrides, which we had to resolve sometimes manually.

Accomplishments that we're proud of

We have this site working under 3 days! You can login and make posts/emergency alerts (which are sent on your email too via the use of Gmail API). We feel very confident that we have an app that allows communities to connect and I believe this is one of the best things that technology can do -- bringing people together!

What we learned

We planned to use GitHub to merge, push, and pull our changes, so connecting local repositories to GitHub and merging changes led to some issues in the beginning. Overtime, we were able to learn how to stage our files, commit, and then push. Somewhat overwhelming in the beginning, but then we found it very helpful in regard to saving our changes and sharing code with each other.

What's next for Neighborhood Security System

Being able to share your current location on posts, add images of scenes that are currently taking place, and providing safety training/advice to the registered users. Improving the home page to include show recent community news with more dynamic updating from current events will enrich the website's functionality. The ability to send messages privately to other users in the neighborhood would be beneficial as it can allow for privacy and security while providing more functionality.

Built With

Share this project:

Updates