A React Native app created with 4 other team members. The aim of this app was to help users to find safe outdoor swimming spots. We leveraged MongoDB for robust backend support and Firebase for user authentication, featuring an intuitive interface for exploring locations and sharing reviews. Dive in for a seamless experience that combines functionality with simplicity.
Develop a versatile React Native application for tracking and discovering safe swimming locations. The backend, powered by MongoDB, exposes a RESTful API with endpoints for fetching location details, reviews, user authentication, and more.
React Native for the front-end, MongoDB for the backend database, and Firebase for user authentication. The API provides various endpoints for serving location information, reviews, and user data.
GET /api: Serves up a JSON representation of all available endpoints.
GET /api/locations: Serves coordinates of safe swimming spots.
GET /api/locations/:location_id: Serves details of a specific location.
GET /api/locations/:location_id/reviews: Serves all reviews for a specific location.
POST /api/locations/:location_id/reviews: Posts a review based on location ID.
DELETE /api/reviews/:review_id: Deletes a review based on the review ID and returns no content.
PATCH /api/reviews/:review_id: Allows users to vote on reviews.
POST /api/locations: Allows users to post new swim locations.
User authentication is handled using Firebase, and user-specific swim locations are stored in the local storage. The app also features an image upload functionality allowing users to upload pictures of swim locations, which are hosted on Firebase, generating image URLs stored in the backend.
Backend Repository: Link
Frontend Repository: Link