«


Free Stroke: Outdoor Swimming React Native Mobile App

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.



Key Information

Objective

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.

Technologies Used

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.

Explore the app's functionality by interacting with the live application.

API Endpoints

Get All Endpoints

GET /api: Serves up a JSON representation of all available endpoints.

Get All Locations

GET /api/locations: Serves coordinates of safe swimming spots.

Get Location Details

GET /api/locations/:location_id: Serves details of a specific location.

Get Reviews for a Location

GET /api/locations/:location_id/reviews: Serves all reviews for a specific location.

Post a Review

POST /api/locations/:location_id/reviews: Posts a review based on location ID.

Delete a Review

DELETE /api/reviews/:review_id: Deletes a review based on the review ID and returns no content.

Vote on a Review

PATCH /api/reviews/:review_id: Allows users to vote on reviews.

Post a New Location

POST /api/locations: Allows users to post new swim locations.

User Authentication and Storage

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.

Explore Further

Backend Repository: Link

Frontend Repository: Link