description |
---|
This page provides comprehensive documentation for the installation of spar-mapper-api, a FastAPI-based service designed for data mapping within the Social Payments Account and Registry (SPAR) system. |
- Any machine running Linux (e.g., Ubuntu), macOS, or Windows
- Python3.10 or later
- Git
- PostgreSQL
- virtualenv
The following dependencies are managed in the installation steps below.
annotated-types==0.6.0
anyio==3.7.1
asyncio==3.4.3
asyncpg==0.28.0
certifi==2024.2.2
cffi==1.16.0
click==8.1.7
coverage==7.5.1
cryptography==41.0.7
ecdsa==0.19.0
fastapi==0.103.2
greenlet==3.0.3
h11==0.14.0
hiredis==2.2.3
httpcore==1.0.5
httptools==0.6.1
httpx==0.27.0
idna==3.7
iniconfig==2.0.0
Jinja2==3.1.4
json-logging==1.3.0
MarkupSafe==2.1.5
openg2p-g2pconnect-common-lib==1.0.0
openg2p-g2pconnect-mapper-lib==1.0.0
-e git+https://github.com/OpenG2P/openg2p-spar-mapper-api.git@00a3f5c3281c9ad113fb939c9c653775f3394546#egg=openg2p_spar_mapper_api
openg2p_fastapi_common==1.0.0
orjson==3.9.15
packaging==24.0
parse==1.20.1
pluggy==1.5.0
psycopg2==2.9.9
pyasn1==0.6.0
pycparser==2.22
pydantic==2.7.1
pydantic-extra-types==2.0.0
pydantic-settings==2.0.3
pydantic_core==2.18.2
pytest==8.2.0
pytest-asyncio==0.23.6
pytest-cov==5.0.0
python-dotenv==1.0.1
python-jose==3.3.0
python-multipart==0.0.9
PyYAML==6.0.1
redis==5.0.4
rsa==4.9
six==1.16.0
sniffio==1.3.1
SQLAlchemy==2.0.30
starlette==0.27.0
typing_extensions==4.11.0
uvicorn==0.29.0
uvloop==0.19.0
watchfiles==0.21.0
websockets==12.0
- Install dependencies
sudo apt install -y python3-pip python3-dev build-essential libpq-dev
- Clone the repository
git clone https://github.com/OpenG2P/openg2p-spar-mapper-api.git
- Navigate to the project root and switch to branch 1.0.0
cd openg2p-spar-mapper-api && git checkout 1.0.0
- Create a virtual environment with Python 3
virtualenv venv --python=python3
- Activate the virtual environment
source venv/bin/activate
- Install the necessary dependencies
pip install -r test-requirements.txt &&
pip install greenlet &&
pip install -e .
-
Create a '.env' file and configure database
-
Set the following environment variables to configure the `spar-mapper-api`:
# Application Port SPAR_MAPPER_PORT='8007' # Database credentials SPAR_MAPPER_DB_HOSTNAME='localhost' SPAR_MAPPER_DB_USERNAME='sparuser' SPAR_MAPPER_DB_PASSWORD='password' SPAR_MAPPER_DB_DBNAME='spardb'
-
Database setup
CREATE ROLE sparuser WITH LOGIN NOSUPERUSER CREATEDB CREATEROLE INHERIT REPLICATION CONNECTION LIMIT -1 PASSWORD 'password'; CREATE DATABASE spardb WITH OWNER = sparuser CONNECTION LIMIT = -1;
-
-
Run migrations to set up the database:
python main.py migrate
- Start the development server
python main.py run
- Access Swagger API Documentation
To run unit tests with pytest
:
pytest -s
Contribution guidelines are available here.