Skip to main content

The data schema and models for F3 Nation applications.

Project description

Overview

This repository defines the F3 data structure, used by the F3 Slack Bot, Maps, etc. The projected uses SQLAlchemy to define the tables / models.

Running Locally

To load the data structure in your database:

  1. Set up a local db, update .env.example and save as .env
  2. Clone the repo, use Poetry to install dependencies:
poetry env use 3.12
poetry install
  1. Run the alembic migration:
source .env && poetry run alembic upgrade head

Contributing

If you would like to make a change, you will need to:

  1. Make the change in models.py
  2. Make a alembic revision:
source .env && alembic revision --autogenerate -m "Your Message Here"
  1. Make any edits to the migration script in alembic/versions
  2. Run the upgrade on your local db:
source .env && alembic upgrade head
  1. Bump the version on pyproject.toml:
poetry version patch[minor][major]
  1. Tag your final commit and make sure to push those tags to trigger the pypi package build:
git tag <new_version> -a -m "Your message here"
git push origin --tags

[!NOTE] The github pages documentation will be updated when you push to main, but if you would like to preview locally, run:

poetry run sphinx-build -b html docs docs/_build/html
cd docs
poetry run python -m http.server --directory _build/html

[!TIP]
Adding new fields as nullable (ie Optional[]) has the best chance of reducing breaking changes to the apps.

Entity Overview

---
config:
    look: handDrawn
    theme: dark
---

erDiagram
    USERS ||--|{ ATTENDANCE : have
    ATTENDANCE }|--|| EVENT_INSTANCES: at
    ATTENDANCE }|..|{ ATTENDANCE_TYPES : "are of type(s)"
    EVENT_INSTANCES }|..|| EVENTS : "part of series"
    EVENT_INSTANCES }|..|{ EVENT_TYPES : "with type(s)"
    EVENTS }|..|{ EVENT_TYPES : "with type(s)"
    EVENT_INSTANCES }|--|| ORGS : "belong to"
    EVENT_INSTANCES }|..|| LOCATIONS : "at"
    EVENTS }|--|| ORGS : "belong to"
    EVENTS }|..|| LOCATIONS : "at"
    SLACK_SPACES ||..|| ORGS : "are connected to"
    USERS ||..|{ SLACK_USERS : "have one or more"
    SLACK_USERS }|--|| SLACK_SPACES : "belong to"
    USERS }|..|{ ACHIEVEMENTS : "earn"
    USERS }|..|{ ROLES : "have"
    ROLES ||..|{ PERMISSIONS : "have"
    ROLES }|..|{ ORGS : "in"
    USERS }|..|{ POSITIONS : "hold"
    POSITIONS }|..|{ ORGS : "in"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

f3_data_models-0.5.14.tar.gz (14.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

f3_data_models-0.5.14-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

File details

Details for the file f3_data_models-0.5.14.tar.gz.

File metadata

  • Download URL: f3_data_models-0.5.14.tar.gz
  • Upload date:
  • Size: 14.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.12.1 Linux/6.11.0-1015-azure

File hashes

Hashes for f3_data_models-0.5.14.tar.gz
Algorithm Hash digest
SHA256 2b7c80cde01cc0da0e089948ada50731ed20037b0ccd4c31515503147d4650af
MD5 8aa935d8bc7d2e475d8bcf2e18ccd0bb
BLAKE2b-256 d38f616ef68c258ab9c2d9b5d0828bf4c292537a2c4d5b4f882fd3a7a5bc02c0

See more details on using hashes here.

File details

Details for the file f3_data_models-0.5.14-py3-none-any.whl.

File metadata

  • Download URL: f3_data_models-0.5.14-py3-none-any.whl
  • Upload date:
  • Size: 14.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.12.1 Linux/6.11.0-1015-azure

File hashes

Hashes for f3_data_models-0.5.14-py3-none-any.whl
Algorithm Hash digest
SHA256 a7b75a67c2646ccb48f80cda040721e8ec1f076213a09a9008463645cc5b067a
MD5 5bcf63ff4ef30b9ebc0d4357d0fdbe09
BLAKE2b-256 67a859b1f8f634f1c7181b3a6296b55060cea3f5948c9cf993fff20bab7e33a1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page