This repository is for the construction of a Veteran's Resource application for the local Albuquerque area(and a toolkit to allow others to quickly deploy similar webapps for their local area), it shall included information on social services and employment to help ease veterans into civilian life and combat homelessness, drug addiction, and suicide rates among the Veteran population of the local Albuquerque area.
Authors: Timothy Beck & John Johnson-Rodgers
Visit our Live App
- Application Description
- Feature List
- Upcoming Features and Changes
- Demo
- Security Implementation
- Code Coverage and Code Examples
- API Documentation
- Datasets Documentation
- Cloning and Deployment Instructions
- Links to resources for further development
- How to Contribute
- About Us
The ABQ Veterans team recognized a problem within our community of our veteran population having more than twice the rates of suicide and homelessness as the general population, despite resources being publicly available. We also recognize that there is no repository of social services provided to veterans who are trying to integrate back into society.
As several of our family members are veterans, and we are very passionate towards the concept of serving those who’ve served us, we aim to improve our community by creating an application that combats these issues. ABQ Veteran’s is an application where users can submit social services and rank those services based on how helpful they are. Our goal is to create an expansive library of resources available to veterans who may need assistance and provide those resources to them packaged in this mobile-friendly and Free and Open Source Software. We also plan to provide developers with APIs and Open Datasets and to encourage them to use our data for free to better their communities.
(Back to Top)
- Find local social resources by predesignated categories
- Useful (similarly to 'Like') resources to rank them by most useful
- Sign up and log into your account
- Submit resources to our database, to benifit the community and help individuals get their needs met
(Back to Top)
- Add a moderator trait giving users the ability to be moderators that can change the approval status or resources
- Expand contribution guidelines in documentation with complete guide on forking, pull requests, and git/documentation best practices
- Create 'More details' sections to resources with Resource profiles including expanded descriptions and more information
- Create SuggestedEdits class to allow users to suggest changes to resource information that a moderator can approve.
- Add search capabilities to filter through our dataset as it grows
- Clean up resource data we currently have
- Populate our categories with more data
- Find most optimized solution for data transfers between dev cycles.
- Add a user profile, logging and allowing users to quickly find resources they have useful'd or submitted
- Add contribution data to users to allow easily identification of power users who contribute high-quality content and changes
- Add 'progressive web app' functionality to allow limited offline use
- Change Icons for categories to cleaner more professional icons
- Create a carousel for homepage displaying most useful'd resources in a better UI/UX format
(Back to Top)
- Background is not centered when length of resource page exceeds a certain limit
- Resource Images frequently do not show up
- Bug Fix: CSV Data Downloader, Text interpretation is incorrect when dealing with commas and quotes
- Bug Fix: Json Data Downloader, Json rows are ending with an extra comma
- Bug Fix: Resources being added to wrong category - waiting for deployment
(Back to Top)
Demo Gifs (Warning: very large files)
- Creating New Resource Demo
- Calling and Opening Maps Demo
- Registering New Account and Signing In Demo
- Usefulling a Resource and Sorting by Most Useful Demo
(Back to Top)
We've included security minded implementations at every level of our codebase, making sure not to stare any sensitive user data and to sanitize all user input at every level of our application in order to make sure that our user's data is secure at every point.
Front-End security -
We utilize sanitization in all fields on our front end to make certain that the information our users are giving us is expected, not malicious in intent, and meets the proper requirements for those fields.
API security -
We utilize sanitization in our APIs to make certain that the information we recieve from the front-end or end user and what we give to our back-end interface is not malicious in intent and is what we are excpecting our users to be giving us.
Back-End security -
We utilize sanitization and prepared statements with every user interaction in our PHP and MySQL calls to ascertain that the user can not give us data we are not expecting or inject data into our database by making sure that every data base call is made using exactly the information we expect to be using. We have also utilized argon2i hashing to securely utilize sensitive user data through one way encryption without having to store that data in our database, allowing user passwords to never actually be saved in our database.
(Back to Top)
//TODO add code coverage and examples of some fun and interesting code we wrote
(Back to Top)
ABQ Veteran's utilizes REST APIs to communicate between our servers and externally with the end user. We have numerous end points for account management and web interactions that developers can utilize to interact with our web app and database.
- Account Activation API
- Account Sign In API
- Account Sign Up API
- Resource Category API
- Resource API
- Useful API
- User Account API
(Back to Top)
To utilize our free and open dataset follow the above link to our online data downloader to copy our data in JSON or CSV formats.
(Back to Top)
//TODO create instructions and supporting documents for cloning our repo, application, and starting this project for another region.
(Back to Top)
Until February, Pull requests won't be considered as we are participating in a contest with this application.
-
Establish a point of contact with the primary developers of this project and discuss the changes you wish to make, either on github or through email or slack.
-
Ensure any install or build dependencies are removed before submitting a request. Likewise, remove any and all sensitive data, any merge containing commits with sensitive data will be declined.
-
Update the README.md with details of all changes to the interface.
-
Document your code, every couple of lines, to ensure we can read through what your code is doing at a reasonable speed without having to decipher every line.
-
After making your changes contact the primary developers for this project and discuss all the changes you've made, letting them know you are ready for a code review and merge.
Click here to view our Contribution Guidelines
(Back to Top)
Tools, Libraries, and Frameworks:
Languages:
(Back to Top)
Timothy Beck and John Johnson-Rodgers at the time of writing this are students at CNM Ingenuity's Deep Dive Coding bootcamp intensively studying Web Development. As developers we are creating this application as practice to improve our proficiency with a number of languages and frameworks to make ourselves more desirable developers in the programming industry. As members of this community, we are developing this resourceful application to make life easier for others and to improve the local community we are a part of and love.
Email: Dev@TimothyBeck.com
Website: https://www.timothybeck.com
LinkedIn: https://www.linkedin.com/in/timothymbeck/
Email: John@JohnThe.dev
Website: https://www.JohnThe.dev
LinkedIn: https://www.linkedin.com/in/johnthe-dev/
(Back to Top)