An app that helps you to practice negotiations with ChatGPT.
Negotiator is a server side rendered app using Flask. It uses Lit to create web components to add dynamic capabilities to each page. Lit web components are developed and tested in the web components directory, and build Javascript and CSS artifacts are copied to the Flask app's static directory. This approach allows for the simplicity of server side rendered app with the dynamic features of a single page app.
-
Install uv and dependencies.
brew install uv nodejs postgresql@14 brew services run postgresql@14 make install
-
Set up the environment.
cp .env.example .env vi .env source .env
-
Set up the database.
psql postgres < databases/drop_and_create_databases.sql make migrate migrate-test
-
Build the frontend and watch for changes.
make web-components/watch
-
Run the fake oauth server in a separate terminal.
make fake-auth/run
-
Run the app in a separate terminal.
source .env make negotiator/run
-
Run tests.
make test
-
Build container
make web-components/build uv pip compile pyproject.toml -o requirements.txt docker build -t negotiator .
-
Run with docker
docker run -p 8081:8081 --env-file .env.docker negotiator