137 lines
7.2 KiB
Markdown
137 lines
7.2 KiB
Markdown
# Who Need Help — Devpost submission draft
|
||
|
||
This document is a ready-to-copy draft for the OpenAI Build Week submission.
|
||
It separates verified project facts from actions that still require the
|
||
entrant's Devpost and YouTube accounts.
|
||
|
||
## Registration and final submission checklist
|
||
|
||
1. Personally confirm eligibility under the official rules: age of majority,
|
||
supported location, and none of the listed exclusions or conflicts.
|
||
2. Create a free Devpost account or sign in, confirm its email if requested,
|
||
open the event page, and select **Join Hackathon**.
|
||
3. Start the project submission and use the fields drafted below.
|
||
4. Record and upload a public YouTube demonstration shorter than three minutes,
|
||
with clear audio and no unlicensed music or third-party marks.
|
||
5. Keep the repository private and grant access to
|
||
`testing@devpost.com` and `build-week-event@openai.com`, or make it public
|
||
only after the owner deliberately selects and adds a license.
|
||
6. Add the public YouTube URL, test-build URL, repository URL, and Codex
|
||
`/feedback` session ID; preview every field and submit before the deadline.
|
||
|
||
Official references:
|
||
|
||
- <https://openai.devpost.com/rules>
|
||
- <https://openai.devpost.com/details/faqs>
|
||
- <https://openai.devpost.com/>
|
||
|
||
## Submission fields
|
||
|
||
- **Project name:** Who Need Help
|
||
- **Track:** Apps for Your Life
|
||
- **Tagline:** Fast, local, voluntary help when every minute matters.
|
||
- **Demo build:** <https://test.whoneedhelp.com>
|
||
- **Repository:** <https://git.imalto.site/simpletest/who_need_help>
|
||
- **Codex `/feedback` session ID:**
|
||
`019f725d-87b5-79e1-8a9f-66e6eaffb35a`
|
||
- **YouTube demo:** not uploaded yet
|
||
- **Built with:** Elixir, Phoenix 1.8, LiveView, PostgreSQL/PostGIS, Oban,
|
||
MapLibre, Docker Compose, Helm, Kotlin/Android, Codex, and GPT-5.6.
|
||
|
||
## Description
|
||
|
||
Who Need Help connects a person with an urgent, non-emergency need to a nearby
|
||
volunteer. Its first use case is medicine pickup: when a pharmacy or ordinary
|
||
delivery service cannot deliver in time, a volunteer can coordinate the pickup
|
||
and handover. The same data-driven flow already supports fuel, wheel, bicycle,
|
||
motorcycle, vehicle-breakdown, and secured-road-incident help without turning
|
||
the product into a marketplace or emergency service.
|
||
|
||
The requester creates a categorized request and initially exposes only an
|
||
approximate area. A volunteer accepts it, then both people coordinate in a
|
||
private real-time chat. The requester can opt into live location sharing for
|
||
the active match. A one-time handover code and confirmation by both parties
|
||
complete the request. Double-blind reviews, unique-counterpart reputation,
|
||
blocking, scoped reports, and optional movement evidence reduce trivial rating
|
||
manipulation without pretending to provide guaranteed identity verification.
|
||
|
||
The platform is free and does not process payments. A helper may publish an
|
||
optional external thank-you link after completion, but any transfer happens
|
||
directly between users. It is not a medical, pharmacy, emergency, transport,
|
||
or payment service.
|
||
|
||
The architecture is intentionally extensible. Categories and their validated
|
||
fields live in PostgreSQL, and users can propose and vote on missing categories
|
||
for human moderation. Social activities—coffee, cinema, walks, and hikes—use a
|
||
separate lifecycle and never affect urgent-help reputation. The same immutable
|
||
release can run compactly on one server with Docker Compose or scale into
|
||
separate web and worker replicas and a later Kubernetes deployment.
|
||
|
||
## How Codex and GPT-5.6 were used
|
||
|
||
The entrant brought the problem, priorities, policy decisions, domain access,
|
||
and deployment constraints. Codex running GPT-5.6 (`gpt-5.6-sol`) helped turn
|
||
that direction into working software: Phoenix contexts and LiveViews,
|
||
PostGIS-backed location handling, real-time messaging, safety and privacy
|
||
controls, an Android client, Docker/Helm operations, automated tests, and the
|
||
verification documentation.
|
||
|
||
Codex was also used as an engineering reviewer. It inspected the code and
|
||
queries, ran the test/security/performance gates, drove two independent headed
|
||
browser sessions through the end-to-end workflow, checked persisted database
|
||
effects, and repaired defects found during verification. One concrete example:
|
||
blocking correctly rejected chat messages on the server, but the blocked
|
||
request page still rendered a message form. The browser audit exposed that UX
|
||
gap; the LiveView now hides the form, shows an explicit blocked state, and has
|
||
a regression test.
|
||
|
||
The application itself does not call the OpenAI API and does not require an
|
||
OpenAI API key. Its optional category-review tool runs only through the
|
||
operator's local ChatGPT-authenticated Codex CLI and receives a PII-free export.
|
||
|
||
## Judge access
|
||
|
||
The public test build does not require payment or a private network. Two
|
||
dedicated test accounts exercise requester and helper roles; their credentials
|
||
are stored outside Git in `output/devpost-testing-instructions.txt` and should
|
||
be copied into Devpost's private testing-instructions field. The judging flow
|
||
uses password sign-in, so reviewers do not need access to a test mailbox.
|
||
|
||
## Demonstration script (target: 2 minutes 45 seconds)
|
||
|
||
- **0:00–0:18 — Problem.** Explain the late medicine-pickup scenario and that
|
||
this is voluntary non-emergency coordination, not a pharmacy or courier.
|
||
- **0:18–0:42 — Create.** Register or sign in as the requester, create a
|
||
medicine request, show category-specific fields and approximate-area privacy.
|
||
- **0:42–1:05 — Match.** In the helper browser, discover and accept the request;
|
||
show both browsers updating and exchange one private chat message.
|
||
- **1:05–1:28 — Track.** Start consent-based location sharing, move the helper
|
||
marker, and point out that raw current positions are removed when sharing
|
||
stops.
|
||
- **1:28–1:52 — Verify.** Enter the handover code, confirm from both accounts,
|
||
submit double-blind reviews, and show the helper leaderboard.
|
||
- **1:52–2:15 — Extend and protect.** Briefly show category proposals, Activity
|
||
mode, privacy settings, block/report controls, and support/removal forms.
|
||
- **2:15–2:38 — Engineering.** Show one Compose deployment, separate web/worker
|
||
roles, PostgreSQL/PostGIS, the passing test count, and the verification doc.
|
||
- **2:38–2:45 — Codex.** State that Codex with GPT-5.6 implemented and audited
|
||
the project with the entrant, then show the public test URL.
|
||
|
||
## Verified evidence and remaining external actions
|
||
|
||
The current test release passed 284 Phoenix tests. A headed two-account browser
|
||
run completed registration, request creation, matching, chat, two-point live
|
||
tracking, tracking cleanup, handover, both-party completion, double-blind
|
||
reviews, leaderboard, privacy persistence, category proposal/vote, Activity
|
||
approval/chat/completion, message-scoped reporting, and block/unblock behavior.
|
||
The regression found during that run was fixed, retested in the browser, and
|
||
committed.
|
||
|
||
The following are intentionally not claimed complete:
|
||
|
||
- the public YouTube demonstration has not been recorded or uploaded;
|
||
- Devpost registration, eligibility confirmation, repository access sharing,
|
||
and the final submission have not been performed;
|
||
- production promotion is separate from the tested deployment and requires
|
||
explicit owner authorization.
|