PawGang is a mobile scheduling app (Android & iOS) for visits to dog parks. It helps dog owners plan and coordinate visits, ensuring their pets can socialize, exercise, and have fun together.
-
Regulars: Make sure you have installed on your local machine
nodeJs
v22.3+
as a runtime environment, the package managernpm
andgit
. -
Database: Install and start MongoDB as your database service on your local machine or MongoDB Atlas if you prefer a cloud-hosted database. Create a new database instance for the app.
-
Google Api: Login into our Google Console account or set one up and get your api key for all Google Maps Platform APIs. Make sure afterwards to enable Geocoding and Places APIs in the Console.
-
Fork this repo into your GitHub
-
Clone your fork onto your local machine using
-
If you wish to load the project into a new directory, create one first
-
In your terminal navigate into your desired directory for this project and load your forked repository to you local machine
cd <your-directory-name> git clone <link_to_your_forked_repo>`
-
-
Install dependencies
-
Navigate in your terminal into the
/server
directory and install dependencies from npmcd server npm i cd .. # ! navigates back to root directory !
-
Navigate in your terminal into the
/client
directory and install dependencies from npmcd client npm i cd .. # ! navigates back to root directory !
-
-
Setup environment variables
-
Via your terminal, create a
.env
file in theroot
directorytouch .env
-
Add API key for Google Maps via the terminal
echo "GOOGLE_MAPS_API_KEY='your_api_key'" >> .env # ! replace 'your_api_key' with your key created for all Google Maps APIs via Google Console !
-
Add your database connection variables via the terminal
echo "MONGODB_URI='your_connection_string'" >> .env # ! replace 'your_connection_string' with your MongoDB connection string ! echo "DB_PASSWORD='your_password'" >> .env # ! replace 'your_password' with your postgreSQL password !
-
Optional: Customize your server host address and port
echo "SERVER_PORT='your_port'" >> .env # ! replace 'your_port' with your desired port number ! echo "LOCAL_IP_ADDRESS='your_host'" >> .env # ! replace 'your_host' with your desired IP address !
-
-
Start the app
-
Start your backend:
cd server npm run dev cd .. # ! navigates back to root directory !
or if you prefer nodemon and have it installed
cd server npm run devN cd .. # ! navigates back to root directory !
NOTE: You should see messages logged to your console confirming your connection to the database and your server
-
Start your frontend: Open a new terminal window and run the following code from your current directory (
/server
)cd .. # ! navigates back to root directory ! cd client npm run start
The app is run with expo, which allows you to run the app on the web, via mobiles devices (Android & iOS) or on mobile simulators via your computer. You can change the environment in the terminal as shown below:
- Web: Your editor should prompt you to open the app in the browser or simply enter click on the link in the terminal
- Mobile
- iPhones: Scan the QR code in the terminal
- Android: Install the expo app on your device and scan the QR code via the app.
Note: If you have troubles connecting, check that your network connection is set as 'private' or use a tunnel service to connect between computer and your device by running in your terminal
expo start --tunnel
to start the app client-side
- Mobile simulator
- iOS (for iPhone): Follow the Expo Guide to set up the iOS simulator
- Windows (for Android): Follow the Expo Guide to set up the Android simulator
Note: The work was mostly done on iOS mobile, so some features may not work or fit properly in on Android or Web.
-
- Search for Parks: Enter your location or use the "Locate Me" feature to find nearby dog parks.
- View Park Details: Check out photos, the adress, and ratings of the parks.
- Plan Visits: Use the "Plan visit 🐾" button to schedule your visit to the park.
- Manage Visits: View and manage all your planned visits in the "My Plans" section.
- Park Schedule: View the schedule of each park to see when other dogs will be visiting and plan accordingly.
PawGang is the perfect app for dog lovers who want to ensure their pets have plenty of opportunities to socialize and play with other dogs. Plan your visits, meet other dog owners, and let your furry friends have a great time at the park!
-
Search Nearby Dog Parks:
- Easily search for dog parks near your location.
- View park details, including photos, ratings, adress.
-
Locate Me:
- Use your current location to find the nearest dog parks with a single tap.
-
Plan Your Visit:
- Schedule visits to dog parks at specific times and dates.
- View the park's schedule to see when other dogs will be visiting.
-
Manage Your Plans:
- Keep track of all your planned visits to different dog parks.
- Edit or cancel your plans as needed.
-
Interactive Calendar:
- View park schedules and plan your visits with an easy-to-use calendar interface.
-
User-Friendly Navigation:
- Simple tab navigation for easy access to search and plan features.
- Intuitive design ensures a seamless experience for all users.
- Language: TypeScript
- Frontend:
- React Native + Expo
- Cypress & Jest (testing)
- Backend:
- Express
- MongoDB + Mongoose
- Google Maps API
- Jest (testing)
Eugenio Navajo - GitHub, LinkedIn
Andre Amato - GitHub, LinkedIn
Vincent Moser - GitHub, LinkedIn