How baitc-hacks/hack-c1d91e20-bsmlh works
AI SANA is a Streamlit marketplace that helps businesses turn rough ideas into scored, publishable tasks, then lets student teams respond and businesses decide manually. The documented workflow covers role/profile setup, AI clarification and card drafting, readiness preview and confirmation, publication and catalog discovery, proposals, and business selection or rejection. The README documents these capabilities and the overall UI-to-storage flow; sampled source confirms AI fallback, deterministic scoring, data contracts, and SQLite persistence. Some UI wiring is documented but omitted from the excerpts.
Main entry points: app.py Task authoring · storage.py Persistence layer · ai.py Gap analysis · rating.py Readiness rating
Components 16
User experience
- Streamlit workflow
app.py - Role profiles
app.py
Task preparation
- Task authoring
app.py - Gap analysis
core/ai.py - Card builder
core/ai.py - Readiness rating
core/rating.py - Task contracts
core/models.py
Marketplace
- Task publication
app.py - Task catalog
app.py - Team proposal
app.py - Business decision
app.py
Data
- Persistence layer
core/storage.py - SQLite database
Other components
- Business user
- Student team
- OpenAI API
Connections 20
- Business user → Streamlit workflow: uses
- Student team → Streamlit workflow: uses
- Streamlit workflow → Role profiles: collects profile
- Streamlit workflow → Task authoring: enters task
- Task authoring → Gap analysis: analyzes text
- Task authoring → Card builder: builds draft
- Gap analysis → OpenAI API: requests analysis
- Card builder → OpenAI API: requests card
- Task authoring → Readiness rating: previews score
- Task authoring → Task contracts: creates task
- Streamlit workflow → Task publication: confirms task
- Task publication → Readiness rating: calculates official score
- Task publication → Persistence layer: saves task
- Student team → Task catalog: browses
- Task catalog → Persistence layer: lists published tasks
- Student team → Team proposal: submits proposal
- Team proposal → Persistence layer: saves proposal
- Business user → Business decision: selects or rejects
- Business decision → Persistence layer: updates proposal status
- Persistence layer → SQLite database: reads and writes