Welcome to the official repository for the OP-RedBack. This project aims to replace the existing MATLAB-based system used by OPTIMA researchers with an interactive, modular, and user-friendly Python-based dashboard.
The goal of this project is to create a dashboard that visualizes and supports the Instance Space Analysis package workflow using Python technologies like Streamlit. It enables researchers to:
- Visualize and analyze algorithm performance across different stages
- Interact with projection data and adjust parameters iteratively
- Explore and filter datasets without deep technical overhead
Ensure the following tools are installed:
- Python 3.12+
pip(comes with Python)- Virtual environment tool (
venvorcondarecommended)
git clone https://github.com/FEIT-COMP90082-2025-SM1/OP-RedBack.git
cd OP-RedBackpython -m venv venv
venv\Scripts\activate # Windows
# or
source venv/bin/activate # macOS/Linuxpip install -r requirements.txtstreamlit run src/app.pyThen open the URL in your browser (usually at
http://localhost:8501).
βββ docs/ # Documentation files (copied from the Wiki)
βββ src/ # Source code (to be added in Sprint 2)
βββ README.md # Overview, repo layout, guidelines, and changelogdocs/contains project documentation such as user stories, requirements, and the motivational model.src/will contain Python source code, visualizations, and Streamlit app components in Sprint 2.README.mdis updated across sprints and contains this project summary, structure, workflow, and changelog.
We follow a GitFlow-based branching strategy:
| Branch | Purpose |
|---|---|
master |
Stable releases |
develop |
Main development branch |
feature/<name> |
New features (branched off develop) |
release/<sprint> |
Preparation for a sprint release |
hotfix/<issue> |
Urgent fixes for master or release |
test/<name> |
Temporary branches for integration testing or deployment verification |
- When: As soon as the sprint backlog is finalized.
- How:
git checkout develop git pull origin develop git checkout -b feature/<descriptive-name>
- Naming: Use descriptive names, e.g. feature/user-authentication.
- Developers regularly commit and push to their feature branches.
- When a feature is βready for review,β open a Pull Request targeting
develop. - The team conducts code review, addresses feedback, and only after approval and passing CI checks is the branch merged back into
develop. - Never merge directly into
developwithout a PR.
- To minimize drift, each morning (or before starting new work) pull the latest
developinto your feature branch:git fetch origin git checkout feature/<name> git rebase origin/develop
- Resolve any conflicts immediately, then force-push the rebased branch (
git push --force-with-lease).
- When the sprintβs scope is complete (all targeted features merged into
develop), we cut a release branch:git checkout develop git pull origin develop git checkout -b release/<sprint-number>
- This branch is used for final QA, documentation updates, and any last-minute adjustments (e.g., version bump, changelog entry).
- Only bug fixes or release-specific tweaks are merged into
release/<sprint>. All new features must wait for the next sprint. - If a critical bug is discovered after the release branch is cut, create a
hotfix/<issue>branch fromrelease/<sprint>(ormasterif already released), fix the issue, then merge back into bothrelease/<sprint>anddeveloponce verified.
- Once QA signs off on
release/<sprint>, merge it intomaster(triggering the official deploy/tag) and back intodevelopto ensure that any final tweaks are not lost:git checkout master git merge --no-ff release/<sprint> git tag v<version> git checkout develop git merge --no-ff release/<sprint>
- Delete the
release/<sprint>branch after merging.
Commit messages follow this format:
<type>(<scope>): <short description>
| Type | Description |
|---|---|
| feat | New feature |
| fix | Bug fix |
| docs | Documentation only |
| style | Formatting, no logic change |
| refactor | Code restructuring without behavior |
| test | Adding or updating tests |
| chore | Maintenance tasks |
All wiki pages have been exported to docs/ as Markdown files.
View the full documentation index here:
Documentation Index
Sprint-based releases are published on GitHub to track deliverables and project progress.
You can find all release packages, changelogs, and demonstration links at:
π GitHub Releases β OP-RedBack
Latest release:
π― Sprint 2
β
Defined the client (OPTIMA), documented project motivations, clarified realistic scope, and structured background in an error-free format.
β
Gathered both functional and non-functional requirements, drafted clear user stories grouped by epics, and aligned them with the project scope.
β
Outlined a clear Motivational Model, including stakeholder needs, functional/quality goals, and emotional goals to guide dashboard design.
β
Created a complete user story map, outlined key workflows and dependencies, and documented planning for Sprint 2 in an accessible format.
β
Set up the GitHub repository following the required structure (docs/, src/, README.md) and established GitFlow with naming conventions and commit message rules.
β
Organised the team workspace using GitHub Project boards and Slack, ensuring all tools are actively maintained for collaboration.
β
Validated user stories and prototype with industry partner, recorded a 3β5 min walkthrough, incorporated feedback, and documented key takeaways.
β
Implemented a Streamlit-based preprocessing interface with support for metadata.csv uploads, algorithm and feature dropdown filters, real-time visualizations, cache generation, and downloadable outputs.
β
Updated the README.md to include setup instructions, usage guide, system workflow, and architectural overview.
β
Delivered a structured product demonstration showcasing key preprocessing features and progress since Sprint 1.
β
Conducted formal code reviews using GitHub Actions; documented participants, reviewed files, identified issues, and addressed feedback.
β
Reflected on AI-assisted code reviews, explaining which suggestions were accepted or dismissed and why.
β
Incorporated industry partner background and goals into project planning and documentation.
β
Completed Sprint 2 review and planning sessions, documented partner feedback, and aligned Sprint 3 scope accordingly.
β
Maintained and updated the GitHub Project board with clearly defined, estimated, and assigned tasks across all workflow lanes.
β
Documented task dependencies and estimation processes in the GitHub Wiki.
β
Outlined and enforced quality assurance practices, including secure coding standards and contribution guidelines.
β
Assessed and documented ethical concerns (privacy, inclusivity, transparency, sustainability) and integrated them into the product development process.
β
Identified cybersecurity risks, secure API practices, authentication considerations, and third-party package assessments; updated relevant documentation.
β
Captured and published minutes for all sprint ceremonies, including planning, review, retrospective, and technical walkthroughs.
β
Finalized all Sprint 2 documentation, including team roles, stakeholder impact, workflow dependencies, and handover preparation for Sprint 3.