Skip to content

bjagg/lif-core

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lif-core

The LIF Core project is a modular collection of components designed to facilitate the aggregation of learner information from a variety of systems and sources into a single data record. The record is based off of a flexible data model schema that can be extended and constrained for localized use. Mapping from a variety of source formats into the LIF data model is managed by a web app (known as MDR) with a graphical UI, included in this repo.

Try the LIF Demo

To experience the LIF components firsthand, you can run the LIF demo application using Docker. Navigate to the deployments/advisor-demo-docker/ directory for instructions on setting up and running the demo. This will give you an interactive demonstration of the LIF Advisor, LIF GraphQL, and MDR, allowing you to explore the system's capabilities and features in a controlled, local environment.

Community Support

We will be activating the Discussions feature in GitHub to support community discussions and topics. Community engagement is highly encouraged, especially for code changes and data model discussions.

Toolchain

  • python
  • uv
  • polylith
  • ruff
  • ty
  • pytest
  • pre-commit
  • commitlint
  • cspell
  • mkdocs

Initial Local Development Setup

  1. Clone Repository
    • In a terminal, run:
      git clone git@github.com:LIF-Initiative/lif-main.git
      
  2. Install uv
  3. Create Virtual Environment / Install Dependencies
    • In a terminal, run:
      uv sync
      
    • Output will indicate that virtual environment was created at .venv and dependencies installed will be listed
  4. Verify Python is Installed
    • In a terminal, run:
      uv run python --version
      
    • You should see:
      Python 3.13.4
      
  5. Verify ruff is Installed
    • In a terminal, run:
      uv run ruff --version
      
    • You should see something like:
      ruff 0.11.13
      
  6. Verify ty is Installed
    • In a terminal, run:
      uv run ty --version
      
    • You should see something like:
      ty 0.0.1-alpha.8
      
  7. Verify pytest is Installed
    • In a terminal, run:
      uv run pytest --version
      
    • You should see something like:
      pytest 8.4.0
      
  8. Verify pre-commit is Installed
    • In a terminal, run:
      uv run pre-commit --version
      
    • You should see something like:
      pre-commit 4.2.0 (pre-commit-uv=4.1.4, uv=0.7.11)
      
  9. Verify mkdocs is Installed
    • In a terminal, run:
      uv run mkdocs --version
      
    • You should see something like:
      mkdocs, version 1.6.1
      
  10. Install pre-commit Hooks
    • In a terminal, run:
      uv run pre-commit install
      
    • You should see the following output:
      pre-commit installed at .git/hooks/pre-commit
      
    • In a terminal, run:
      uv run pre-commit install --hook-type commit-msg
      
    • You should see the following output:
      pre-commit installed at .git/hooks/commit-msg
      

Optional Local Development Setup

  1. Install jq

Common Commands

Check Code Formatting

uv run ruff format

Run Linter

uv run ruff check

Run Type Checker

uv run ty check

Run All Checks

uv run pre-commit run

Using Virtual Environment

Instead of having to prefix each command with uv run, you can instead activate the virtual environment.

Activate

source .venv/bin/activate

Deactivate

deactivate

About

Core framework of LIF components

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PLpgSQL 65.8%
  • Python 20.3%
  • TypeScript 10.3%
  • JavaScript 1.5%
  • Shell 1.0%
  • CSS 0.9%
  • Other 0.2%