Zulu
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:
- Fork this repository.
- Apply your code changes in your forked branch.
- Open a pull request.
Tracking tasks
- Tasks are tracked using GitHub issues
- 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
-
Clone this Repository:
git clone https://github.com/OSS-team-zulu/Zulu.git
cd Zulu
-
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.
-
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
-
The react site should be live at http://localhost:3000
-
If live reloading is not working, you may need to install Chrome Allow CORS extension and
enable it while developing.
-
To integrate with the backend, make sure it is running at http://localhost:8342
Running BE locally for development
- 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
- Run:
make run_backend
- The server should be live at http://0.0.0.0:8342
- 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:
- Make sure your API server and MongoDB are running
- Run:
python contrib/load_points.py
Running tests
Run (warning: the tests would remove the DB data):
make run_tests