eugine.me

Student resource centre

Find the next useful answer.

Setup instructions, learning paths, team playbooks, troubleshooting, reference links and ideas that travel beyond the Nisa project.

I am starting

Set up and learn the essentials

Python, uv, VS Code, Git and the first Streamlit run.

I am contributing

Follow the team workflow

Issue → branch → test → pull request → review → evidence.

I am stuck

Diagnose the layer

Use the recovery guide before randomly reinstalling tools.

I want to go further

Explore adjacent pathways

Data, web, AI evaluation, accessibility and public-interest technology.

Guided learning library

Start with the problem, then open the smallest useful guide

Workstation setup

  1. 1

    Confirm the tools

    python --version && uv --version && git --version

    Each command should print a version instead of an error.

  2. 2

    Clone the team project

    git clone https://github.com/barrelsgd/nisbot.git

    Open the new nisbot folder in VS Code.

  3. 3

    Install the locked environment

    uv sync

    Use the project lockfile; do not install random packages globally.

  4. 4

    Run the quality checks

    uv run ruff check . && uv run pytest

    Fix or report failures before starting feature work.

  5. 5

    Start the application

    uv run streamlit run app.py

    Use the README command if the repository entry point changes.

Setup principles

  • Use the repository’s documented command and lockfile.
  • Keep project packages inside the uv-managed environment.
  • Never paste credentials into code, GitHub, screenshots or chat.
  • Prefer Codespaces as a clean recovery path over random reinstalls.
  • Record the exact command and error when asking for help.
  • Confirm the app, Ruff and pytest all work before adding a feature.

Working playbooks

Repeatable paths beat memorised commands

Start a change

  1. Read the issue outcome and acceptance evidence.
  2. Pull the latest shared development branch.
  3. Create a focused feature or fix branch.
  4. Write the smallest failing check or reproducible example.
git switch dev && git pull && git switch -c feature/short-name

Prove the change

  1. Run the focused test while developing.
  2. Run Ruff and the complete test suite.
  3. Inspect git diff and remove unrelated changes.
  4. Explain inputs, outputs, invariants and failure behaviour.
uv run ruff check . && uv run pytest && git diff

Share the evidence

  1. Commit one coherent change with a meaningful message.
  2. Push the branch and open a pull request.
  3. Link the issue and record the exact checks run.
  4. Respond to review by improving the same branch.
git add <files> && git commit -m "feat: describe the outcome"

Use AI responsibly

  1. Attempt or describe the problem before requesting a solution.
  2. Ask for an explanation, alternatives or debugging strategy.
  3. Inspect every generated line and remove what you cannot explain.
  4. Add or update tests, then disclose material assistance in project notes.
Understand → inspect → test → explain

Troubleshooting

Identify the failing layer first: directory, environment, dependency, application, test, data, network or provider.

A command is not recognised
  1. Confirm you are using Git Bash or the project’s recommended terminal.
  2. Restart the terminal after installing a tool.
  3. Run the version command and copy the exact error into the team issue.
uv cannot find the project
  1. Run pwd and confirm the terminal is inside the nisbot folder.
  2. Confirm pyproject.toml is visible in the current folder.
  3. Do not create a second project inside the repository.
The app works for a teammate but not for me
  1. Pull the latest branch and run uv sync again.
  2. Compare the exact startup command and Python version.
  3. Use Codespaces as the clean recovery environment if local setup remains blocked.
A test fails
  1. Read the first failure, not only the final summary.
  2. State the expected result, actual result and input that caused it.
  3. Repair the smallest cause and rerun that test before the full suite.
An API key or personal data appears in code
  1. Stop and do not commit or share it.
  2. Tell a facilitator so an exposed credential can be replaced.
  3. Move configuration to the approved environment mechanism and add a safe example file.

Beyond the anchor project

Nisa teaches skills that travel

The same habits—clear boundaries, structured data, tests, evidence and safe failure—apply across the region’s public services, businesses, schools, climate work and research.

Data explorer

Turn a public dataset into a checked table, chart and plain-language finding.

Python · validation · pandas · visual communication

Weather or climate assistant

Explain approved forecasts, alerts or climate information with source and time context.

APIs · provenance · uncertainty · public safety

School service guide

Help students navigate verified programmes, deadlines or learning resources.

Content modelling · search · accessibility · handoff

Small-business automation

Convert a repetitive, low-risk process into a reviewed Python workflow.

Files · functions · tests · error recovery

Civic information tool

Make a public process easier to understand without making legal or personal decisions.

Authority · plain language · citations · privacy

AI evaluation lab

Compare prompts, retrieval methods or models against a labelled test set.

Experimental design · metrics · failure analysis · reporting

Quick reference

Plain-language glossary

API
A documented way for one program to request work from another.
Branch
A separate line of Git work used to build one change safely.
Citation
A pointer to the exact source that supports an answer.
Commit
A named snapshot of a coherent code change.
Dependency
A package the project relies on but does not own.
Embedding
A numerical representation used to compare meaning between texts.
Fallback
The safe behaviour used when the preferred path cannot succeed.
Hallucination
A plausible-sounding model output that is unsupported or false.
HTTP
The request-and-response protocol used by web clients and servers.
JSON
A text format for exchanging structured data.
Migration
A versioned change to a database schema.
Model gateway
The application boundary around a model provider.
Observability
Evidence that helps operators understand behaviour and failures.
Prompt
Instructions and context sent to a language model.
Pull request
A reviewable proposal to merge code into a shared branch.
Queue
A waiting line for background work that may run later.
RAG
Retrieval-augmented generation: retrieve evidence, then answer from it.
Tool
A validated function an AI application may request permission to call.
Validation
Checking that data meets explicit rules before it is used.
Vector
An ordered list of numbers; embeddings are stored and compared as vectors.