Skip to content

⚙️ Written using (Flask Python, REST API). Konishi is a FOSS minimalist discussion board (social platform).

License

Notifications You must be signed in to change notification settings

konishi-project/zimmerman

Repository files navigation

Zimmerman

last-commit python contributions license

Konishi's backend written in Python 3+. Zimmerman is a free and open source REST API that aims to have the core features of Facebook groups with the added bonus of transparency, flexibility, and other FOSS goodness.

Official frontend repo can be found here.

Requirements

Database

Zimmerman uses SQLite for development, SQLite in-memory for testing and PostGreSQL for production.

When creating a Postgres Database, make sure to name it 'konishidb' or whatever you like and change the config name for the database in zimmerman/config.py

PostgreSQL Installation

This can vary for many different distributions/operating systems. You can find many guides for that through your distribution's guide/community. (https://www.postgresql.org)

This may also work for their derivatives but make sure to double check as well, it isn't going to harm anybody.. except maybe your distro...

Resourceful Links for the commonly used distros ;)

Zimmerman uses Black for formatting the code.

Contributing

The Konishi project is a community project which includes Zimmerman. We are welcoming contributors who would like to make an impact in the project and eventually the social networking industry.

Current guidelines for contributing is currently work in progress but here are some the ways you can help.

Feel free to contact the lead developer X1Zeth2X for further or other inquiries.

  • Contributing to the source code.
  • Contributing to the documentation of the APIs.
  • Financial support/contribution.
  • Suggesting improvements, features.

Prerequisites

[TODO: Add instructions for other distros]

  • Python3.x
    • Ubuntu: sudo apt install python3
  • Pipenv
    • Ubuntu: sudo apt install python3-virtualenv python3-venv virtualenv
  • PostGreSQL
    • Find up-to-date instructions for your distro. Often subject to change.

Install and Setting up

NOTE: If you are going to run this app with gunicorn, gunicorn zimmerman:main will not work and raise Application not callable error. Instead use gunicorn manage:app to run it using the manage.py module.

Clone the repo

$ git clone https://github.com/konishi-project/zimmerman.git
$ cd zimmerman

Install dependencies w/Pipenv

$ pipenv install
  • Note: On some distros like Ubuntu it is pip3 not pip. Command may break because it's looking for python2.

Setting up the database

This assumes that you're using PostGreSQL but the process should be the same for SQLite.

After meeting the requirements and installing PostGreSQL, make sure you've set the configurations to match your local PSQL credentials. Afterwards initialize the database to work with the app using:

$ python manage.py db init
$ make migrate

Running the application

# Start virtualenv
$ pipenv shell

# Running
$ make run

or 

$ python manage.py run

Deploying

Heroku

When deploying to services like Heroku, remember that the filesystem is ephemeral. We also recommending reading documentations for Flask, SQLAlchemy, and Alembic related to migrations and Heroku.

About

⚙️ Written using (Flask Python, REST API). Konishi is a FOSS minimalist discussion board (social platform).

Resources

License

Stars

Watchers

Forks

Packages

No packages published