Moved to https://git.splent.io/splent-io/innosoft_app . This copy is read only.
This repository has been archived on 2026-09-20. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
  • Python 92.1%
  • CSS 3.5%
  • Shell 2.8%
  • HTML 1.5%
  • Dockerfile 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
drorganvidez 6cf40de236 Stop folding informative pages into edition descriptions; add a cleanup pass
The importer folded every informative page of a year (sustainability, TDAH,
grants, the English home copy) into that year's edition description, and the
edition's own home HTML carried its posters as inline figures. The result was an
unreadable wall with giant inline images. The importer now keeps only the
leading intro and drops the poster figures, which already live in the Posters
section; clean_descriptions.py trims the already-imported data the same way. The
folded page content stays archived in data/extracted/pages.json.
2026-08-17 01:28:01 +02:00
docker chore: re-render the prod compose from the current template (bind hosts, persistent volumes) 2026-08-15 18:36:07 +02:00
entrypoints feat: InnoSoft Days — event website built with the CMS SPL 2026-06-28 01:59:03 +02:00
migration Stop folding informative pages into edition descriptions; add a cleanup pass 2026-08-17 01:28:01 +02:00
scripts fix: run the production profile in prod and require SECRET_KEY in .env.deploy 2026-08-15 18:08:32 +02:00
src Recover all InnoSoft Days editions and turn each into a hub 2026-08-17 00:24:47 +02:00
.gitignore Recover all InnoSoft Days editions and turn each into a hub 2026-08-17 00:24:47 +02:00
LICENSE feat: InnoSoft Days — event website built with the CMS SPL 2026-06-28 01:59:03 +02:00
package-lock.json feat: InnoSoft Days — event website built with the CMS SPL 2026-06-28 01:59:03 +02:00
package.json feat: InnoSoft Days — event website built with the CMS SPL 2026-06-28 01:59:03 +02:00
pyproject.toml Recover all InnoSoft Days editions and turn each into a hub 2026-08-17 00:24:47 +02:00
README.md docs: minimum clone set without splent_catalog 2026-07-26 20:24:54 +02:00

innosoft_app

A web application built with SPLENT, derived from the cms_spl product line.

This repository is a thin shell. It declares which features the product installs (see pyproject.toml) and SPLENT composes, validates and runs them.

Run it locally

Your machine only needs Docker, Git and GNU Make. Python, Node and the database all live inside containers, so nothing else has to be installed.

1. Create a workspace

A SPLENT product is not standalone. It lives in a workspace folder next to the SPLENT tooling repositories.

mkdir splent_workspace && cd splent_workspace
git clone https://github.com/diverso-lab/splent_framework.git
git clone https://github.com/diverso-lab/splent_cli.git
git clone https://github.com/splent-io/innosoft_app.git

Those three are all you need to run the product. The SPL catalog (splent_catalog) is only required to create new products or to validate the variability model, and the features themselves are installed from PyPI.

2. Check your Git config file

The CLI container mounts your ~/.gitconfig. If that file does not exist, Docker creates it as an empty directory and installing features fails later. Create it once as a real file.

rm -rf ~/.gitconfig && touch ~/.gitconfig
git config --global user.name "Your Name"
git config --global user.email "you@example.com"

3. Start the SPLENT CLI

cd splent_cli
make setup

That prepares the workspace .env, starts the CLI container and drops you inside it. Every splent command below runs in there. From the host you can also use docker exec splent_cli_container splent <command>.

4. Bring the product up

splent product:select innosoft_app
splent product:resolve        # install the features declared in pyproject.toml
splent product:derive --dev   # build images, run migrations, start the stack
splent db:seed -y             # load demo data, optional

The first derive downloads images and compiles assets, so give it a few minutes. When it finishes the app is served at http://localhost:5800, and splent product:port prints that URL again whenever you need it.

Everyday commands

Command What it does
splent product:up --dev Start the stack
splent product:down --dev Stop the stack
splent product:restart Restart the Flask app
splent product:logs Tail the container logs
splent product:console Python shell with the app loaded
splent feature:status Features installed in this product
splent db:migrate Generate and apply a migration
splent product:port Print the local URL

When something looks wrong

splent product:logs       # what the app actually says
splent doctor             # full workspace diagnosis

splent product:validate goes further and checks that the feature selection satisfies the variability model, so it needs the splent_catalog clone.

Documentation

Everything else, from the feature catalog and the UVL variability model to the full command reference and deployment, lives at docs.splent.io.