BE for PyCon ID 2025 website
- python 3.12
- postgresql 14
- buat python virtual environtment
python -m venv env
- aktifkan python virtual environtment
source env/bin/activate
- install depedency ke virtual environtment
pip install -r requirements.txt
- copy file .env.example menjadi .env
cp .env.example .env
lalu isi berdasarkan konfigurasi postgresql - migrasi tabel menggunakan alembic
alembic upgrade head
- jalankan aplikasi
uvicorn main:app --reload
- buka openapi doc di http://localhost:8000/docs
ruff format
ruff check
- migrasi database lalu run semua testing
alembic upgrade head && pytest .
- run testing secara paralel
pytest -n auto .
- run semua testing pada folder tertentu
pytest ./{path}/{to}/{folder}
- run semua testing pada file tertentu
pytest ./{path}/{to}/{folder}/{file}.py
- run semua testing pada class tertentu
pytest ./{path}/{to}/{folder}/{file}.py::{nama class}
- run satu testing pada class tertentu
pytest ./{path}/{to}/{folder}/{file}.py::{nama class}::{nama fungsi}
- run verbose (lihat print)
pytest . -s
untuk tata cara kontribusi bisa dilihat di CONTRIBUTING.md dan diharapkan kontributor memematuhi Code of Conduct yang berlaku.
- Create a Project on Google Cloud
- Create a clients on Google Auth Platform
- Copy
Client ID
andClient Secret
into.env
- Set the HTTP origins that host your web application on
Authorised JavaScript origins
- Set callback End-Point on
Authorised redirect URIs
to get an access code from Google
Jika ada muncul kesalahan seperti ini ketika menjalankan alembic untuk pertama kalinya,
sqlalchemy.exc.ProgrammingError: (psycopg.errors.InsufficientPrivilege) permission denied for schema public
LINE 2: CREATE TABLE public.alembic_version (
^
[SQL:
CREATE TABLE public.alembic_version (
version_num VARCHAR(32) NOT NULL,
CONSTRAINT alembic_version_pkc PRIMARY KEY (version_num)
)
solusinya adalah memberikan permission ke pada user yang bersangkutan ke schema public.
Berikan akses usage dan create schema public ke user.
GRANT USAGE ON SCHEMA public TO user;
GRANT CREATE ON SCHEMA public TO user;
Cara ini juga dapat dicoba:
GRANT ALL ON SCHEMA public TO user;
Login sebagai user-nya, lalu uji coba:
SELECT has_schema_privilege('public', 'CREATE');`
Luarannya: t
(true) jika sudah benar. Setelah ini dapat menjalankan alembic kembali.