The fluorescent hum of overhead lights thrums like an irritated wasp in Aryan's skull as he squints at his computer screen. His left-hand hovers over the keyboard, two fingers twitching with the memory of a half-typed email. The air smells faintly of burnt coffee and synthetic lemon cleaner, the scent clinging to the center lock partition walls. It’s 9:47 a.m., according to the clock above Room 312’as door, its second hindering forward with mechanical indifference. He’s missed it again: the subtle shift in his gut that began as a faint fizz, the kind of sensation you blame on rushed takeout or forgotten breaks. But now, a sharp pinch digs below his ribs, as though someone’s inflated a balloon inside his abdomen. He exhales slowly, pressing his palm flat against his sternum.
Digestive tract spasms from caffeine overuse, he tells himself, though the diagnosis tastes hollow.
The chair creaks when he shifts to open a desk drawer. Bottles of antacids, ibuprofen, and a half-melted roll of breath mints clink together. He swallows two chalky tablets dry, their bitterness pooling at the back of his tongue. When he straightens, the movement jostles his stomach into a deeper ache. The spreadsheet on his monitor blurs as his eyes water. He blinks rapidly, typing the last line of quarterly expenses twice before deleting it.
“You look like hell,” Priya says, sidling up to his cubicle with a chipped cardboard coffee cup. A sticker on it reads “World’s Best Assistant Manager” in flaking silver ink.
“Ambrosia,” he mutters, thumping his fist lightly against the side of his monitor to sharpen the pixels.
She raises an eyebrow, the mole beside it trembling faintly. “You’re green. Like… lime Jell-O green.”
The keyboard clicks louder as his thumbs attack the keys. “Jealousy’s an ugly color, Priya.”
“Fine. Die of dysentery on my watch.” She knocks the styrofoam cup onto his desk, sloshing coffee across his wrist. Dark liquid seeps into a stack of invoices. Aaryan jerks his hand back, but not before the warmth spreads over his skin like spilled ink.
“I’m fine,” he snaps, too loud. The phrase boomerangs backward, echoing in the open-plan office. A few heads turn—Raj from Accounting, Mei-Ling with her ever-whirring printer—and then retreat like startled turtles. Priya’s mouth tightens into a line Aaryan knows too well, the one that precedes lectures about burnout and HR brochures. He pivots his chair to face the window.
The parking lot sprawls there, a cracked tarmac field studded with delivery trucks and employees slouching against cars for nicotine hits. A gull lands on a puddle, its shadow stretching thin over the asphalt. Aaryan’s stomach clenches violently. He digs his nails into his thigh, counting backward from one hundred.
LOKAL APP
Full Task Breakdown — Backend & Frontend
Project Manager Reference Document • All phases included • Admin: ozan@gmail.com / Entropy8
How to read this document
Backend | Server-side work — data, payments, emails, APIs, security. Users don't see this directly. |
Frontend | What users see and click — screens, buttons, forms, notifications, navigation. |
Bug | Something that is broken and needs to be fixed before or after launch. |
Feature | Something that needs to be built — it doesn't exist yet. |
Security | A safety or privacy gap that could expose user data or allow hacking. |
Launch | Must be done before the app goes live to real users. |
Phase 2 / 3 | Planned for after launch — don't let devs work on these now. |
53 total tasks • Backend = the engine behind the app. Stores data, handles payments, sends emails, runs security. Users never see it directly — but everything breaks without it.
# | Task / Bug Description | Team | Type | Phase |
|---|---|---|---|---|
1 | User suspension button does not call the API — suspension is never actually saved to the database | Backend | Bug | Launch |
2 | Authentication rejection email not sent when admin rejects a Local's application | Backend | Bug | Launch |
3 | Admin 7-day suspension call returns error: 'Invalid value, path: userId, location: params' | Backend | Bug | Launch |
4 | Audit log not recording moderation actions (suspension, rejection, flagging) | Backend | Bug | Launch |
5 | User notification not sent after moderation decision (suspension/rejection) | Backend | Bug | Launch |
6 | Manage Availability (Settings) — verify API endpoints exist; write memo to backend if missing | Backend | Bug | Launch |
7 | Payout Details (Settings) — verify API endpoints exist; write memo to backend if missing | Backend | Bug | Launch |
8 | Languages (Settings) — endpoint likely missing; verify and write memo to backend | Backend | Bug | Launch |
9 | Login Methods (Settings) — not connected to backend | Backend | Feature | Launch |
10 | Security (Settings) — not connected to backend | Backend | Feature | Launch |
11 | Push notification infrastructure (provisioning) — required for mobile app notifications when app is closed | Backend | Feature | Launch |
12 | In-app notifications while app is open — backend real-time event system needed (WebSocket/SSE) | Backend | Feature | Launch |
13 | Dashboard new message indicator — backend not pushing real-time updates | Backend | Bug | Launch |
14 | SQL injection prevention — penetration testing not done | Backend | Security | Launch |
15 | PII handling audit — personal user data flows not security-tested | Backend | Security | Launch |
16 | Malicious file detection — server-side scanning not implemented | Backend | Security | Launch |
17 | Virus scanning integration — no antimalware pipeline on file uploads | Backend | Security | Launch |
18 | Path traversal prevention — backend implementation unknown, needs verification | Backend | Security | Launch |
19 | File content validation — only MIME type checked, full validation missing | Backend | Security | Launch |
20 | Image processing security — resize/optimize pipeline not assessed | Backend | Security | Launch |
21 | Storage security audit — file storage permissions and access not reviewed | Backend | Security | Launch |
22 | Memory leak monitoring — long sessions (8+ hours), large chat histories, multiple uploads not monitored | Backend | Bug | Launch |
23 | Rate limiting verification — not confirmed to be active | Backend | Security | Launch |
24 | Error tracking setup (e.g. Sentry) — no error monitoring in place | Backend | Feature | Launch |
25 | Performance monitoring setup — no server-side performance tracking | Backend | Feature | Launch |
26 | Backup and disaster recovery — not tested | Backend | Feature | Launch |
27 | Scaling plan — not validated under load | Backend | Feature | Launch |
28 | City Pulse API — validate active traveler counts, topicsInDemand, exampleQuestions, timeContext logic | Backend | Feature | Launch |
29 | City Pulse admin city health states (healthy/warning/critical) — not validated | Backend | Feature | Launch |
30 | Tax calculations — not implemented (simple gross pricing only) | Backend | Feature | Phase 2 |
31 | Refund workflow — not implemented | Backend | Feature | Phase 2 |
32 | Revenue sharing calculation — not implemented | Backend | Feature | Phase 2 |
33 | Minimum withdrawal amounts — backend ready but UI unclear | Backend | Feature | Phase 2 |
34 | Automated payout system — not implemented | Backend | Feature | Phase 2 |
35 | Tax reporting (1099 / documentation) — not implemented | Backend | Feature | Phase 2 |
36 | Withdrawal approval workflow — manual process, not defined | Backend | Feature | Phase 2 |
37 | Fraud detection triggers — no automated monitoring | Backend | Feature | Phase 2 |
38 | Revenue reconciliation / accounting integration — not implemented | Backend | Feature | Phase 2 |
39 | Double charge prevention — not tested | Backend | Bug | Phase 2 |
40 | Currency conversion / multicurrency — USD only currently | Backend | Feature | Phase 3 |
41 | Dispute resolution workflow — not implemented | Backend | Feature | Phase 2 |
42 | Profanity check / automated content moderation — not implemented | Backend | Feature | Phase 2 |
43 | Spam detection — not automated, manual review only | Backend | Feature | Phase 2 |
44 | Automated moderation triggers — all manual currently | Backend | Feature | Phase 2 |
45 | Typing indicators — not implemented | Backend | Feature | Phase 2 |
46 | Online/offline status updates — not implemented | Backend | Feature | Phase 2 |
47 | Photo sharing in chat — not implemented | Backend | Feature | Phase 2 |
48 | Email system: city request digest, weekly digest, phone verification | Backend | Feature | Phase 2 |
49 | Formal user appeal process — no appeal workflow exists | Backend | Feature | Phase 2 |
50 | Escalation procedures — no escalation workflow exists | Backend | Feature | Phase 2 |
51 | Multilanguage support — backend translation/locale system not implemented | Backend | Feature | Phase 2 |
52 | Analytics > Platform Metrics — missing; weekly report, user growth, chat rates, revenue trends | Backend | Feature | Phase 2 |
53 | Settings > Platform Settings — missing; policies, automated moderation rules, health, audit logs | Backend | Feature | Phase 2 |
37 total tasks • Frontend = everything the user sees and taps on screen — buttons, pages, forms, chat windows, notifications, navigation.
# | Task / Bug Description | Team | Type | Phase |
|---|---|---|---|---|
1 | Profile photo not shown on dashboard and Personal Information page for Local users | Frontend | Bug | Launch |
2 | Profile photo not shown when uploaded during 'Become a Local' flow | Frontend | Bug | Launch |
3 | Story shown incorrectly on Local's profile page — layout or data mapping issue | Frontend | Bug | Launch |
4 | 'Switch to Local' button still shows 'approval pending' even after user is approved | Frontend | Bug | Launch |
5 | Local Settings > Personal Information — all fields (city etc.) showing dummy/hardcoded data | Frontend | Bug | Launch |
6 | Local Settings > City Profile — not loading data from the database | Frontend | Bug | Launch |
7 | Local Settings > Languages — showing dummy data; not fetching real user language preferences | Frontend | Bug | Launch |
8 | Local profile does not show dietary preferences | Frontend | Bug | Launch |
9 | Dashboard does not show new messages and does not refresh when navigating between pages inside the app | Frontend | Bug | Launch |
10 | No unread message indicator (red dot/count) on chat icon in bottom navigation bar | Frontend | Bug | Launch |
11 | In-app chat notifications not visible when inside the app — messages not shown on bottom nav | Frontend | Bug | Launch |
12 | Traveler incoming chat dashboard — UI and bottom menu missing or incomplete | Frontend | Feature | Launch |
13 | Local incoming chat monitor dashboard — UI not complete | Frontend | Feature | Launch |
14 | App.tsx refactor — giant monolith file must be broken into components; state management needs restructuring | Frontend | Feature | Launch |
15 | Story Content Moderation — image does not upload in the Create Story flow | Frontend | Bug | Launch |
16 | Admin moderation workflow test interrupted — flag for further investigation button not working | Frontend | Bug | Launch |
17 | Credit card payment UI in 'Become a Local' flow — not tested / possibly not connected | Frontend | Bug | Launch |
18 | Apple Pay UI — not tested at start of flow | Frontend | Feature | Launch |
19 | PayPal UI — not tested | Frontend | Feature | Launch |
20 | Mobile: camera access and session retention — not working consistently | Frontend | Bug | Launch |
21 | Mobile: in-app notifications UI — not showing on mobile | Frontend | Bug | Launch |
22 | Admin: notification to user not shown after moderation action | Frontend | Bug | Launch |
23 | WCAG 2.1 AA accessibility compliance — not tested; VoiceOver check missing | Frontend | Feature | Launch |
24 | Page load times — must be under 3 seconds; performance testing not done | Frontend | Feature | Launch |
25 | City Pulse — Test CityPulseLocal component in Local Dashboard widget (local mode testing needed) | Frontend | Feature | Launch |
26 | City Pulse — Test in traveler home screen, local dashboard widget, and admin screens | Frontend | Feature | Launch |
27 | City Pulse — Verify responsive design and animations | Frontend | Feature | Launch |
28 | City Pulse — Test real-time updates in UI if implemented | Frontend | Feature | Launch |
29 | Admin — login with admin account and activate admin mode (Ctrl+Shift+A), test city editorial analytics UI | Frontend | Feature | Launch |
30 | Admin — test AI suggestions and intervention controls in admin UI | Frontend | Feature | Launch |
31 | React to React Native — convert web app to native iOS/Android mobile app | Frontend | Feature | Phase 2 |
32 | Availability toggle in 'Become a Local' flow — does it have any actual effect? Needs UI verification | Frontend | Bug | Phase 2 |
33 | Admin chat detail page shows 'coming soon' — needs to be built | Frontend | Feature | Phase 2 |
34 | System messages — random/automated message UI not designed yet | Frontend | Feature | Phase 2 |
35 | 'Go Unlimited' and packages UI — subscription/package screens not designed | Frontend | Feature | Phase 2 |
36 | Cross-language communication UI — multilanguage interface not implemented | Frontend | Feature | Phase 2 |
37 | Emergency moderation — in-chat reporting feature UI for Local users not built | Frontend | Feature | Phase 2 |
1. Two backlogs = one problem: Both MD files cover the same project but have small differences (File 2 adds Apple Pay, PayPal, and backend memo instructions). Merge everything into one master list in Jira. Having two separate documents means someone will update one and forget the other.
2. Security before launch: Items marked Security are not optional. SQL injection, virus scanning, and PII handling must be fixed before going live or you face legal and reputational risk.
3. Phase 2 items — freeze them now: There are 20+ Phase 2 features (refunds, multicurrency, tax, multilanguage). Make sure developers are not touching these before launch features are done. Lock them in Jira as Phase 2.
4. App.tsx refactor is a priority: The entire app lives in one giant file. This makes every bug harder to find and fix. This refactor should happen early — before new features are added on top of a messy foundation.
5. Backend memo process: For Settings pages (Availability, Payout, Languages), the frontend developer needs to write a memo to the backend team confirming which API endpoints exist and which are missing. Assign this action clearly in Jira.