Skip to content

Location-centric local discovery app. An open-source react-native app where users can pin points of interest on a shared map. Visibility is limited to nearby points of interest.

License

Notifications You must be signed in to change notification settings

OSS-team-zulu/Zulu

Repository files navigation

Zulu

License: MIT Backend unit tests

Table of contents:

About Zulu

Zulu - A Local exploration App

A social platform that allows viewing stories based on geographical location

  • A local social app where people can share (anonymously or otherwise) personal histories attached to specific locations. Ranging from historical tidbits and recommendations to personal stories about life events or emotions connected to this location.
  • Users can become tourists in familiar locations, viewing the world through other's eyes, as well as a more intimate peak into
  • Main interface is a map of local stories.
    • Only a users immediate surroundings can be seen?

Basic Structure

  • A backend server, written in Python using FastAPI.
  • A MongoDB database.
  • A react frontend.

Deployment is automated using docker via docker-compose

Contributing

This project is under the MIT License.

Bugs & Issues

Feel free to report bugs and open issues in this repository.

Contributing code

Code contributions are welcomed!

First, read the guidelines at the Backend and Frontend sections in order to setup a development environment.

Afterwards:

  1. Fork this repository.
  2. Apply your code changes in your forked branch.
  3. Open a pull request.

Tracking tasks

  1. Tasks are tracked using GitHub issues
  2. We use GitHub Kanban board for planning - https://github.com/OSS-team-zulu/Zulu/projects/1

Team Info

Running Zulu

Developing Requirements

  • docker-compose, or Docker Desktop if you have Windows 10 (version 2004 and above) (just make sure it is running before you start developing).
  • python 3.8
  • npm
  • GNU Make. If you don't have make, just open the Makefile and run the relevant commands.
  • mkvirtualenv will make the Python virtual environments managment easier, but you can use your favorite. In Windows 10 just run pip install virtualenvwrapper-win to install it.

Getting Started

  1. Clone this Repository:

    git clone https://github.com/OSS-team-zulu/Zulu.git
    cd Zulu
  2. Create a new virtual environment with Python 3.8 and activate it. If you have virtualenvwrapper, simply run mkvirtualenv -p python3.8 zulu to create, and workon zulu to activate.

  3. install the dependencies via:

make install

Running the full stack with Docker:

make run_full

For reduilding the full stack, run:

make build_full

Once running, the web UI can be found at: http://localhost:8085. An autogenerated Backend API interface is at: http://localhost:8086/docs.

Running FE locally for development

make run_frontend
  1. The react site should be live at http://localhost:3000

  2. If live reloading is not working, you may need to install Chrome Allow CORS extension and enable it while developing.

  3. To integrate with the backend, make sure it is running at http://localhost:8342

Running BE locally for development

  1. Make sure you are in the right virtual environment, such that a python command calls Python 3.8, and the requirements were installed via make install
  2. Run:
make run_backend
  1. The server should be live at http://0.0.0.0:8342
  2. Auto-generated API documentation can be found at http://0.0.0.0:8342/docs

Loading sample data

In order to load a sample data from Israel:

  1. Make sure your API server and MongoDB are running
  2. Run:
    python contrib/load_points.py

Running tests

Run (warning: the tests would remove the DB data):

make run_tests

About

Location-centric local discovery app. An open-source react-native app where users can pin points of interest on a shared map. Visibility is limited to nearby points of interest.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published