The neighborhood safety app is a community-driven software solution designed to enhance public safety and infrastructure management by providing residents with a platform to report and track local safety issues. See live web version here ➡️ https://neighborhood-safety-app.vercel.app/
This app uses the following technologies and libraries:
- Expo (for building and running the app)
- React Native (for mobile app development)
- TypeScript (for type-safe development)
- Vercel (for web hosting)
- MongoDB (for database management)
- Cloudinary (for image hosting and management)
- uuid (for generating unique IDs)
- Axios (for making HTTP requests)
- Expo Image Picker (for selecting images)
- EAS Build (for building the app)
- React Navigation (for navigation)
- Expo Router (for file-based routing)
- Async Storage ( for storing data in local storage)
- Google Maps API (for map integration and geolocation)
- express (for building the server and handling API routes)
- mongoose (for connecting to and interacting with the MongoDB database)
- dotenv (for managing environment variables securely)
- cors (for enabling cross-origin resource sharing)
- bcryptjs (for hashing passwords in the MongoDB database)
- node-fetch (used in Node.js environments to make HTTP requests)
- nodemon (for automatically restarting the server during development when file changes are detected) (optional)
For more information about the backend repository, it can be accessed here.
- Straightforward Report Submission: Allows user to easily submit report information such as description, type, etc.
- Image Upload: Users can upload images for their reports, which are stored in Cloudinary.
- Public Reports Log: Users can view other people's reports.
- Google Maps Integration: Users can select a location on the map or use their current location for reporting issues.
- Report Submission: Reports are submitted with geolocation, issue type, description, and optional image.
- Live Map: Displays all submitted reports with markers and status-based color coding.
- User Authentication: Login and sign-up functionality with backend integration.
To set up and view the app on your local machine, follow these steps:
- Install Node.js (LTS version recommended).
- Install Expo Go on a physical device (if you wish to preview the app on mobile).
- Install MongoDB and ensure it is running locally or use a cloud-hosted MongoDB instance.
- Create a Cloudinary account and set up an upload preset.
- Obtain a Google Maps API Key.
-
Clone this repository:
git clone https://github.com/mrchow330/Neighborhood-Safety-App.git
-
Navigate to the project directory:
cd Neighborhood-Safety-App -
Install dependencies:
npm install
-
Set up environment variables:
- Create a
.envfile in the root of the project. - Add the following variables:
MONGO_URI=your-mongodb-connection-string CLOUDINARY_URL=your-cloudinary-upload-url GOOGLE_MAPS_API_KEY=your-google-maps-api-key
- Create a
-
Start the MongoDB connection:
node server.js
- Alternatively, check just this link to see if the server is running
-
Start the Expo development server:
npx expo start
-
Open the app:
- Scan the QR code in the terminal using the Expo Go app on your mobile device.
- Alternatively, open the app in a web browser (by pressing w) or through an emulator.
The app is available as a web version using Vercel and is automatically deployed whenever there are new commits.
See live web version here ➡️ https://neighborhood-safety-app.vercel.app/
For developers, the latest Android builds can be accessed on the Expo Dashboard for the Expo Organization.
For more info on whether to build or just use Expo Go, see this article.
To build yourself, you must be a member of the organization and have an account set up.
Follow the instuctions below:
- Install EAS CLI if you haven't already
npm install -g eas-cli- Install Expo CLI
npm install -g expo-cli- Run the login command and follow the prompts to log in
eas login- To start the Android build run
eas build --platform androidOnce the build has started, you'll see progress in your terminal. Additionally, you can monitor the build status and logs from the EAS Build Dashboard through your account.
When the build is completed, you will get a link to download the APK or AAB file.
- Using Android Studio Emulator
- Publishing websites
- React fundamentals
- Expo Tutorial
- Add new pages/ add Navigation
- Cloudinary Documentation
- MongoDB Documentation
- Axios Documentation
- Google Maps API Documentation
- Eric Chow (Senior Biochemistry Major in Bradley University)
- Wardiyah Rammazy
- Caleb Ribeiro
- Mason Breidenbach
- Cailer Kellenberger
©(not really) 2025 Team Prodigies