All Projects → ayr-ton → kamu

ayr-ton / kamu

Licence: MIT license
You favorite book library

Programming Languages

javascript
184084 projects - #8 most used programming language
python
139335 projects - #7 most used programming language
CSS
56736 projects
HTML
75241 projects
Makefile
30231 projects
shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to kamu

Shappar
気軽に投票を【取れる】【見れる】【できる】アプリです。
Stars: ✭ 22 (-66.15%)
Mutual labels:  django-rest-framework
Face-Recognition-System
Intelligent Facial Recognition with Django Restful IoT on Raspberry Pi
Stars: ✭ 46 (-29.23%)
Mutual labels:  django-rest-framework
elearning
e-learning django app (django, python)
Stars: ✭ 107 (+64.62%)
Mutual labels:  django-rest-framework
django-ninja-extra
Django Ninja Extra - Class-Based Utility and more for Django Ninja(Fast Django REST framework)
Stars: ✭ 53 (-18.46%)
Mutual labels:  django-rest-framework
grafana on dokku
Dockerfile to run Grafana (monitoring) on Dokku (mini-Heroku)
Stars: ✭ 12 (-81.54%)
Mutual labels:  dokku
django-restframework-userprofile
Public Profile is a Django REST Framework based API that demos how to extends a default Django Auth User model with a Profile. In addition, the code also includes a demo client that show how to consume the API from a Client Web Application.
Stars: ✭ 24 (-63.08%)
Mutual labels:  django-rest-framework
okta-spring-security-5-example
Authentication with Spring Security 5 and Okta OIDC
Stars: ✭ 16 (-75.38%)
Mutual labels:  okta
clisso
Get temporary credentials for cloud providers from the command line.
Stars: ✭ 34 (-47.69%)
Mutual labels:  okta
django-rest-live
Subscribe to updates from Django REST Framework over Websockets.
Stars: ✭ 48 (-26.15%)
Mutual labels:  django-rest-framework
GSoC-Data-Analyser
Simple search for organisations participating/participated in the GSoC
Stars: ✭ 29 (-55.38%)
Mutual labels:  django-rest-framework
PyQuotes
PyQuotes is a Django-based web application and REST API. That will allow you to launch an online quotes service.
Stars: ✭ 23 (-64.62%)
Mutual labels:  django-rest-framework
okta-ionic-auth-example
Example showing Ionic Authentication with Okta
Stars: ✭ 23 (-64.62%)
Mutual labels:  okta
mathesar
Web application providing an intuitive user experience to databases.
Stars: ✭ 95 (+46.15%)
Mutual labels:  django-rest-framework
mobileAudit
Django application that performs SAST and Malware Analysis for Android APKs
Stars: ✭ 140 (+115.38%)
Mutual labels:  django-rest-framework
django-rest-framework-yaml
YAML support for Django REST Framework
Stars: ✭ 27 (-58.46%)
Mutual labels:  django-rest-framework
django-logic
Django Logic - easy way to implement state-based business logic with pure functions
Stars: ✭ 44 (-32.31%)
Mutual labels:  django-rest-framework
dokku-graphite
a graphite, grafana, statsd, carbon plugin for dokku
Stars: ✭ 47 (-27.69%)
Mutual labels:  dokku
lego
LEGO Backend
Stars: ✭ 48 (-26.15%)
Mutual labels:  django-rest-framework
yak
A tool to log in to AWS through Okta
Stars: ✭ 38 (-41.54%)
Mutual labels:  okta
plausible on dokku
Dockerfile to run Plausible (analytics) on Dokku (mini-Heroku)
Stars: ✭ 17 (-73.85%)
Mutual labels:  dokku

Kamu

"Some books leave us free and some books make us free." – Ralph Waldo Emerson

Build Status Test Coverage Maintainability Open Source Helpers

Join the Matrix.org contributors chat at https://matrix.to/#/#kamu:matrix.org

Kamu is an application that focus on managing a physical library where you can add books, borrow and return them.

In the main page you can see the libraries shared between users. The libraries can be different unities, cities or name of friends that wants to share books. In the Screenshoot bellow, you can see an example of multiple libraries.

Screenshoot for Kamu's multiple libraries

Requirements

  • Python 3.6+ for Django backend
  • Node.js 8+ for frontend assets

Installation / Getting started

Here is a quick step-by-step minimal setup, to get the app up and running in your local workstation:

MacOS specific

To install Node.js and npm you can either download it from the node.js homepage or install it using homebrew:

brew install node

Platform independent

Create Python virtual enviroment:

python3 -m venv venv

Activate virtual enviroment (this command can change based on OS):

source venv/bin/activate

Install backend dependencies using pip:

pip install -r requirements.txt

Install frontend dependencies using npm:

npm install

Create database tables:

python manage.py migrate

Create a super user:

python manage.py createsuperuser

You will use this super user to login as administrator in your local Kamu application.

Seed the database with initial dump data:

python manage.py loaddata dump_data/*.json

Start your local server:

npm start

Now just go to http://localhost:8000 in your browser :)

For local setup with Okta authentication: Use the OKTA_METADATA_URL and OKTA_ENTITY_ID environment variables, concatenating it with the usual commands. Examples:

  OKTA_METADATA_URL='url-of-okta-saml' OKTA_ENTITY_ID='url-of-okta-login' npm start
  OKTA_METADATA_URL='url-of-okta-saml' OKTA_ENTITY_ID='url-of-okta-login' python manage.py migrate

Another way is to export the var and then execute the commands:

  export OKTA_METADATA_URL='url-of-okta-saml' OKTA_ENTITY_ID='url-of-okta-login'
  npm start
  python manage.py migrate

If you wish to disable Okta authentication again, execute:

  unset OKTA_METADATA_URL OKTA_ENTITY_ID

Using Docker for local development

Remember to create a .env file with all the environment variables you need for spining up the environment.

For building the image:

  make docker-build

If you're not planning to use a heroku like build or touch docker files, you can also pull from Dockerhub:

  make docker-pull

Create database tables:

  make docker-migrate

Create a super user (for non Okta based usage):

  make docker-createsuperuser

You will use this super user to login as administrator in your local Kamu application.

Seed the database with initial dump data:

  make docker-loaddata

Start your local server:

  make docker-dev

Now just go to http://localhost:8000 in your browser :)

For simulating a Heroku like environment (recommended to make build first):

  make docker-heroku

Access your local Heroku in the same link http://localhost:8000

Stop your environment:

  make docker-down

Deployment

We have out of the box support for Heroku 🐉, Dokku 🐳 and Docker 🐳.

For deployment, create a new Python app and set the remote origin from Dokku or Heroku, push it and enable the Postgres plugin.

The buildpacks should configure all the necessary libraries for you.

Now, we need the following environment variables before running Kamu for the first time:

SECRET_KEY="django-secret-key" # https://duckduckgo.com/?q=django+secret+key+generator
DEBUG=true # Or false, depending if is a testing or production app
DJANGO_SETTINGS_MODULE="core.settings.prod" # If you plan to run a testing version
DATABASE_URL=postgres://dbhost/dbname # This variable should be automatically configured by the postgres extension.
ALLOWED_HOSTS="kamu.example.com, kamu.heroku.etc"
OKTA_METADATA_URL="SECRET-OKTA-STUFF" # On the case of Okta Authentication support
OKTA_ENTITY_ID="http://kamu.example.com/okta-login/acs/" # On the case of Okta Authentication support, the URL to the acs login route
ANALYTICS_ACCOUNT_ID="UA-123456789-1" # Only if you want to enable Google Analytics, otherwise don't set it
SENTRY_DSN="SECRET-SENTRY-DSN" # Only if you want to enable Sentry, otherwise don't set it
SSL=false # Enabled by default in production like deployments

See Dokku environment variables or Heroku Config Vars for more details.

On non Okta based deployments, you should run either dokku run kamu /bin/bash or heroku run /bin/bash -a kamu (On this case, kamu is app name)

python manage.py createsuperuser

See #74

Thanks!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].