danjzych / friender-backend

RESTful Flask API for geolocation-based social media application

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool


A geolocation-based social media application for finding friends near you.

View Demo · Report Bug · Frontend Repo

Table of Contents
  1. About The Project
  2. Getting Started
  3. Roadmap
  4. License
  5. Contact
  6. Acknowledgments

About The Project

Friender is a geolocation-based social media app for finding and chatting with friends near you. Each user sets their location, and a radius within which they can search for friends.

If two users indicate they'd like to be friends with each other, they match, and can began chatting with each other.

This API can be used in conjunction with the Friender frontend, or queried directly using tools such as Insomnia or Postman.

(back to top)

Built With

  • Flask
  • postgresQL

(back to top)

Getting Started

To get a local version of Friender up and running, do the following. Note that, to have an operational Friender frontend, you will need to set up the backend as well.

Prequisites

  1. Clone the repo

    git clone https://github.com/danjzych/friender-backend.git
  2. Create and Start Virtual Environment

     python -m venv venv
     source venv/bin/activate
  3. Install Requirements in Virtual Environment

    pip3 install -r reqquirements.txt

Setup Images

  1. Create postgresQL Database and Seed Data

    ipython
    [1] %run app.py
    [2] %run seed.py
  2. Setup AWS S3 Bucket for user photos Friender uses S3 object storage to store and access user photos. Create an S3 bucket with CORS enabled.

  3. Add AWS Credentials to .env You will need:

    • 'AWS_ACCESS_KEY_ID'
    • 'AWS_SECRET_ACCESS_KEY'
    • 'IMAGE_BUCKET'
  4. Upload user images from /images to your S3 bucket and ensure the file names match those used in seed.py.

Run App

After doing the above, you are ready to launch the Friender backend. From your virtual environment, run

flask run -p 5001

(back to top)

Roadmap

  • Add Profile Photo Designation for user images
  • Optimize searching for potential friends
  • Add notifications system
    • Track whether new matches and messages have been seen by relevant users
  • Refactor chatting using Flask websockets

See the open issues for a full list of proposed features (and known issues).

(back to top)

License

Distributed under the MIT License.

(back to top)

Contact

Daniel Zych - LinkedIn - danjzych@gmail.com

Project Link: https://github.com/danjzych/friender-backend

(back to top)

Acknowledgments

This project was also built with:

(back to top)

About

RESTful Flask API for geolocation-based social media application


Languages

Language:Python 100.0%