YardHopper is a full-stack mobile application designed to simplify the process of discovering and organizing garage sales within local communities. Developed using Expo, React Native, and Firebase, this app provides a centralized platform for bargain hunters and enthusiasts who enjoy treasure hunting at yard sales.
- User-friendly interface for searching nearby garage sales
- Ability to explore detailed listings of items available for purchase
- Feature for users to create and manage their own sales
- Comprehensive search functionality with filtering options
- Interactive map view for visualizing sale locations
- User profile management and settings
- Integration with device features like photo library and location services
The YardHopper application is built as a full-stack solution with the following components:
- Frontend: Developed using Expo and React Native, providing a native mobile app experience
- Backend: Built with Firebase Cloud Functions and Firestore database with a custom API hosted on Render
- User Authentication: Secure login and account management system
- Sale Discovery: Search and filter garage sales based on various criteria
- Listing Management: Create, edit, and delete personal garage sale listings
- Item Details: View comprehensive information about individual sale items
- Map Integration: Visualize sale locations on an interactive map
- Image Upload: Add and manage images for sale listings
- Location Services: Use device GPS for precise sale location tracking
The API documentation can be found at https://yardhopperapi.onrender.com/api-docs. It provides detailed information on available endpoints, request/response formats, and authentication requirements.
- Authentication is handled using Firebase authentication
- All sensitive data is encrypted before transmission
- Private user information is not publicly accessible
- Users can archive their posts and delete their accounts, ensuring data privacy
The application utilizes a NoSQL schema in Firestore for efficient data storage and retrieval. Data is structured to balance public accessibility with user privacy.
- Separation of Concerns: Modular design for improved maintainability and testability
- Error Handling: Comprehensive error management system with custom error classes
- Validation: Rigorous input validation to ensure data integrity
- Geolocation Integration: Utilizes GeoApify API for accurate location-based services
Special thanks to all contributors who have made this project possible:
- Chris Gillis
- Mark Tipton
- Allison Binger
- Mariah Bargas
- Kier McAlister
For any questions or issues, please feel free to reach out:
- Email: yardhopperadmn@gmail.com
We appreciate your feedback.
Happy treasure hunting!