Skip to content

Latest commit

 

History

History
170 lines (134 loc) · 3.29 KB

File metadata and controls

170 lines (134 loc) · 3.29 KB
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.

SPAR Mapper API

Installation

Prerequisites

  • Any machine running Linux (e.g., Ubuntu), macOS, or Windows
  • Python3.10 or later
  • Git
  • PostgreSQL
  • virtualenv

Python Dependencies

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

Steps to install

  • 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

Quick start

  • Start the development server
python main.py run

Testing

To run unit tests with pytest:

pytest -s

Contributing

Contribution guidelines are available here.