team-review

LearnTrading

Period: 2026-03-19 → 2026-05-07 · Generated by: oscar · 2026-06-29 12:00 · Sources: jira, github

LearnTrading — Timeline, deliverables by area & pending items

This is the client version with the three key views of the period: day-by-day timeline, deliverables grouped by functional area, and the real status of pending items. All data is real, pulled live from Jira (epic SD-227) and GitHub (swissbull-group/learntrading); nothing is invented.

⏱️ Actual duration: 34 working days. The period from March 19 to May 7, 2026 spans 50 calendar days, from which 7 Saturdays, 7 Sundays and 2 Bolivian national holidays are deducted (Good Friday, April 3 and Labour Day, May 1) → leaving 34 working days. The key figure: there were commits on all 34 working days, meaning the team worked on virtually every available working day in the period, with no dead weeks or idle days within the working schedule.


1. Day-by-day timeline

Each day is a collapsible: the title summarises what was done; opening it shows the tickets (traceable evidence in Jira) and the activity (tickets closed · commits · PRs). Collapsed by default — click each day to see the detail. Weekends and public holidays omitted.

🎨 Design & Brand — in parallel (Design team)

Work by the Design team, in parallel with development (it began on March 15, before the code). Data provided by the Design team — not from Jira SD-227 or GitHub.

Mar 15–18 — Logo creation & visual identity

Investigation & concept development · Moodboarding (visual direction) · Typography & color palette · Logo suite development · Social-media profile pictures & banners.

Mar 19–22 — Brand mascot ideation & creation

Mascot concept & development · Mascot character presentation.

Mar 23 – Apr 5 — Website design: Home, 404 & Login pages

Home-page wireframe · Complete Home-page mockup · Hero-section banner & Home-page visual assets (icons & video) · Home-page feature cards.

Apr 10–11 — Website Plans page

Plans-page section design.

Apr 13–30 — Website Course page & other web/social assets

Complete Course-page design · Certificate design · Module 1 & 2 lesson banners · Course-page feature cards · Course-page icon set · Certificate design (Course page) · Social-media channel setups (Facebook, Instagram, X, TikTok) · Social-media launch-post designs.

💻 Development — day by day (Dev team)

Week 1 — Project foundations (Mar 19–20)

Thu Mar 19 — Project kickoff from scratch: Next.js project created and linting/formatting (ESLint + Prettier), continuous integration (CI), and the PR review command configured.

Tickets: SD-229, SD-226, SD-230, SD-232 · 4 done · 21 commits · 4 PRs

Fri Mar 20 — UI infrastructure: shadcn installed, Supabase MCP added, and base layouts built (header, desktop and mobile navbars, footer).

Tickets: SD-238, SD-231, SD-234, SD-239 · 4 done · 7 commits · 2 PRs

Week 2 — Backend, authentication, and payments in test mode (Mar 23–27)

Mon Mar 23 — Core infrastructure: Supabase integration with Next.js, Supabase configuration and purchase, domain setup on Vercel and Cloudflare, main/develop branch protection, production and staging deployments; form libraries (zod, react-hook-form, tanstack-query).

Tickets: SD-241, SD-247, SD-248, SD-253, SD-250, SD-249, SD-240 · 7 done · 22 commits · 3 PRs

Tue Mar 24 — Authentication: Supabase auth, Login and Signup working; Resend account and email domain verification on Cloudflare (transactional emails).

Tickets: SD-242, SD-243, SD-244, SD-254, SD-255, SD-228 · 6 done · 21 commits · 2 PRs

Wed Mar 25 — *Highest-closure day.* Intensive session on authentication and account (profile, signout, password strength, auth routes, avatar drawer), first steps on courses (Supabase persistence, per-module mini-quizzes), and payments (Stripe in test mode with test cards).

Tickets: SD-264, SD-271, SD-273, SD-279, SD-281, SD-283, SD-251, SD-268, SD-270, SD-274, SD-275 (and more) · 18 done · 48 commits · 2 PRs

Thu Mar 26 — Advanced authentication: password recovery, form styling, Google Sign-In (Next.js + Supabase + Google Cloud), avatar editing; Stripe payments in test mode and API version fix.

Tickets: SD-245, SD-265, SD-266, SD-294, SD-256, SD-288, SD-284 · 11 done · 35 commits · 7 PRs

Fri Mar 27 — Development environment stabilisation and Stripe error fixes in dev. High commit volume (22) against few formal closures: a debugging/integration session.

Tickets: SD-305, SD-307 · 2 done · 22 commits · 4 PRs

Week 3 — Dashboard, subscriptions, and second payment provider (Mar 30–Apr 2)

Mon Mar 30 — Authentication (signout fixes and light/dark-mode form fixes, free lesson preview for logged-in users), infrastructure (deploy fixes on develop, Vercel previews), and landing (loaders, loading.tsx).

Tickets: SD-299, SD-304, SD-309, SD-319, SD-313, SD-314, SD-290, SD-316 · 11 done · 18 commits · 3 PRs

Tue Mar 31 — Payments/subscriptions: per-user subscription view on the dashboard, Stripe Manage Billing link, NowPayments onboarding (sandbox, crypto), payment method modal; courses added to dashboard.

Tickets: SD-321, SD-322, SD-330, SD-331, SD-276, SD-324, SD-325, SD-326 · 9 done · 23 commits · 3 PRs

Wed Apr 1 — Premium lesson logic, Supabase migration conflict resolution, and new Claude skills for the team. 30 commits: a deep-work session with few formal closures.

Tickets: SD-329, SD-362, SD-336 · 3 done · 30 commits · 4 PRs

Thu Apr 2 — Creator/student roles, desktop tools page improvements, logo fix, and Supabase warnings resolved.

Tickets: SD-354, SD-363, SD-366, SD-368 · 4 done · 29 commits · 2 PRs

Fri Apr 3 – Sun Apr 5 — Easter (Bolivian public holiday: Good Friday, Apr 3). No commit activity. These are non-working days, not a delay.

Week 4 — LMS, exams, and trading tools (Apr 6–10)

Mon Apr 6 — Resumption after the holiday: work in progress (commits and PRs); formal closures reflected in the following days.

No tickets closed (Done) that day — resumption after the holiday, with in-progress work already committed to code.

In progress (referenced in the day's commits): SD-385 (AI agent improvements), SD-320 (NowPayments), SD-371 (simultaneous AI actions), SD-365 (final quiz page).

Commits that day (17): force-dynamic + auth guard on the dashboard layout · True/False question component integrated into the exam · certificate page + user RLS policies · form refactor (useWatch) in DcaForm/Liquidation · PR/Slack commands.

Activity: 0 done · 17 commits · 4 PRs

Tue Apr 7 — Payments (upgrade/current-plan logic with NowPayments, hot-fix in dev), courses (final quiz page), landing (mobile scroll header), and Claude command/agent configuration.

Tickets: SD-332, SD-388, SD-365, SD-364, SD-424, SD-426, SD-387 · 7 done · 30 commits · 6 PRs

Wed Apr 8 — Courses/LMS and exams ("back to dashboard" button, auto-pass debug mode), trading tools (input validation and liquidation price formula correction verified against Binance/Bybit), payments (NowPayments in test).

Tickets: SD-431, SD-433, SD-428, SD-429, SD-320, SD-333, SD-386, SD-427 · 9 done · 32 commits · 5 PRs

Thu Apr 9 — Auth responsiveness, "go to dashboard" button for logged-in users, post-purchase redirect, and official course focus.

Tickets: SD-291, SD-335, SD-334, SD-430 · 4 done · 24 commits · 4 PRs

Fri Apr 10 — LMS: quiz bug fixes (retries, progress reflected in sidebar) and debug mode expanded for exam gates. Landing: hero section implemented.

Tickets: SD-442, SD-443, SD-445, SD-446, SD-456 · 5 done · 24 commits · 4 PRs

Week 5 — Landing sections, email confirmation, and XP (Apr 13–17)

Mon Apr 13 — Landing: stats, why-learn-trading, and features sections. LMS: lesson/module reference in quiz explanations on failure. Backend refactor (single source of truth).

Tickets: SD-459, SD-468, SD-469, SD-444, SD-455, SD-458, SD-460, SD-470 · 8 done · 27 commits · 7 PRs

Tue Apr 14 — Email confirmation flow (Supabase template, signout after confirmation, email-confirmed page), landing ("/" route enabling the landing, header on public routes, pricing styles), and XP admin view.

Tickets: SD-485, SD-486, SD-487, SD-488, SD-496, SD-503, SD-494, SD-484 · 9 done · 25 commits · 5 PRs

Wed Apr 15 — AI Audio (ElevenLabs) end-to-end in a single day: account setup, configuration of the "Rachel" voice, .mp3 generation, audio bucket in Supabase, and lesson 1.1 audio uploaded. XP configuration panel with audio bonus.

Tickets: SD-507, SD-508, SD-509, SD-510, SD-512, SD-515, SD-504, SD-518 · 8 done · 9 commits · 2 PRs

Thu Apr 16 — AI Audio: ElevenLabs integration, AudioPlayer component in lessons, manual and automatic generation from the admin panel. LMS: admin UI for exam questions (CRUD). Migration to Next.js 16 revalidatePath signatures and hardened error handling.

Tickets: SD-506, SD-511, SD-528, SD-533, SD-461, SD-527, SD-513, SD-516 · 8 done · 32 commits · 5 PRs

Fri Apr 17 — Landing: how-it-works, roadmap sections, and mobile navbar styles. Payments: NowPayments idempotency improvements and end-to-end test. UUID PK migration for course modules (admin).

Tickets: SD-549, SD-594, SD-581, SD-588, SD-591, SD-589, SD-546 · 7 done · 21 commits · 6 PRs

Week 6 — Branding, final landing sections, and mascot (Apr 20–24)

Mon Apr 20 — *Maximum PRs merged (8).* Branding: brand typography and colour palette applied across the entire app (and in the certificate PDF / OG image). Mascot: customisation section + video optimisation. Landing: testimonials section, improved 404/verification UX. Tools: trading journal section.

Tickets: SD-603, SD-605, SD-604, SD-610, SD-611, SD-612, SD-602, SD-607 · 8 done · 36 commits · 8 PRs

Tue Apr 21 — Landing: pricing and general FAQ section, mobile pricing cards. Payments: persistence of Stripe cancellation details.

Tickets: SD-616, SD-618, SD-617, SD-613 · 4 done · 22 commits · 7 PRs

Wed Apr 22 — Landing: CTA and footer. 16 commits / 4 PRs of supporting work.

Tickets: SD-626, SD-634 · 2 done · 16 commits · 4 PRs

Thu Apr 23 — Landing/Courses: complete landing page, first courses page, dark mode on public routes (courses, pricing, tools, blog, about), mobile navbar, course image CRUD from the admin panel.

Tickets: SD-295, SD-653, SD-659, SD-661, SD-666, SD-655 · 6 done · 18 commits · 4 PRs

Fri Apr 24 — Work-in-progress session (commits and PRs); formal closures on the next working days.

No tickets closed (Done) that day — work-in-progress session; formal closures fall on the next working days.

In progress (referenced in the day's commits): SD-681 and SD-627 (proxy and auth form technical debt), SD-664 (password rules), SD-636 (breadcrumbs across all flows), SD-685 (X/Twitter avatars in next/image), SD-658 (404 page).

Commits that day (16): preserve Supabase cookies in proxy redirects (SD-681) · auth form cleanup (SD-627) · password reset gate with recovery cookie (SD-664) · consistent breadcrumbs (SD-636) · pbs.twimg.com whitelisting (SD-685).

Activity: 0 done · 16 commits · 4 PRs

Week 7 — Courses page, animations, and close-out (Apr 27–May 7)

Mon Apr 27 — End-to-end test of the final exam.

Tickets: SD-680 · 1 done · 16 commits · 3 PRs

Tue Apr 28 — Complete courses page: certificates, FAQ, CTA, and outcomes sections.

Tickets: SD-703, SD-704, SD-705, SD-706, SD-710 · 5 done · 32 commits · 3 PRs

Wed Apr 29 — Landing: complementary sections and testimonials on the pricing page, responsiveness, background variants, UX/UI improvements. Legal: cookie policy page.

Tickets: SD-712, SD-713, SD-722, SD-723, SD-745, SD-746, SD-671 · 7 done · 18 commits · 5 PRs

Thu Apr 30 — *Project's peak commit day (55).* Landing animations (Framer Motion): reveal/reveal-group components and animations for the hero, stats, why-learntrading, how-it-works, roadmap, testimonials, pricing, FAQ, CTA, trading journal, and mascot sections.

Tickets: SD-751, SD-752, SD-753, SD-755, SD-756, SD-757, SD-758, SD-759, SD-760, SD-761, SD-762, SD-763, SD-764 · 13 done · 55 commits · 4 PRs

Fri May 1 – Sun May 3 — Bolivian public holiday (Labour Day, May 1). No activity. Non-working days.

Mon May 4 — Animations: courses page and its sections (outcomes, certificate). Deployment infrastructure adjustments (deploy.yml, Vercel seat management).

Tickets: SD-767, SD-783, SD-784, SD-785, SD-390, SD-391 · 6 done · 23 commits · 5 PRs

Tue May 5 — Animations for the pricing page and tools/calculators. LMS: "lesson opened" tracking, course cover image fix in admin. Legal: terms and conditions styling.

Tickets: SD-786, SD-791, SD-792, SD-793, SD-505, SD-811, SD-803 · 7 done · 21 commits · 6 PRs

Wed May 6 – Thu May 7 — Final touch-ups and close-out integrations. May 7 is the last day with activity in the repository.

No tickets closed (Done) those days — final touch-ups and close-out integrations. May 7 is the last day with activity in the repository.

In progress (referenced in commits): SD-555 (lesson content shortcodes in markdown), SD-527 (embedded quiz), SD-780 (aesthetic refresh of "destructive" tokens), SD-819 / SD-817 / SD-839 (post-SD-802 follow-ups), SD-675 (GDPR Art. 20 data export).

May 6 commits (19): lesson shortcode plugin foundation · GDPR data export endpoint (SD-675) · "destructive" token refresh with APCA verification (SD-780) · idempotency and seed fixes.

May 7 commits (10): shortcuts panel + 6 in-lesson shortcuts · callout and fill-blank exercise components for lessons · shortcode wiring in the MarkdownRenderer (SD-555).

Activity: 0 done · May 6: 19 commits / 3 PRs · May 7: 10 commits / 1 PR

From May 8 onwards: complete stop. Zero commits and zero PRs in learntrading from May 8 to today (~53 days). The cause is not the team: it is a project reassignment (see the full report).

2. Deliverables by functional area (scope)

Everything delivered (200 tickets Done), grouped by area. The number is the ticket count for that area.

#Area (scope)Active periodWhat was built
1Landing & marketing siteMar 20 – May 5Base layouts, all landing sections (hero, stats, why, features, how-it-works, roadmap, testimonials, pricing, FAQ, CTA, footer), courses/pricing/tools pages, dark mode, responsiveness, and Framer Motion animations
2Courses / LMSMar 25 – May 5Course persistence, premium lessons, quizzes and exams (gates, retries, explanations), certificates, XP, progress tracking, course CRUD
3Infrastructure & DevOpsMar 19 – May 4Next.js project, CI, Supabase, Vercel (prod/staging), domains, Resend, branch protection, migrations, Next.js 16, error handling
4Authentication & accountMar 24 – Apr 23Login/Signup, Google Sign-In, password recovery, email confirmation, profiles, avatars, sessions, user drawer
5Payments & subscriptionsMar 25 – Apr 21Stripe (test, billing, cancellations) and NowPayments (crypto, idempotency), pricing cards, payment modal, post-purchase flows
6AI Audio (ElevenLabs)Apr 15–16Text-to-speech integration: "Rachel" voice, .mp3 generation, audio bucket, AudioPlayer in lessons and automatic generation from admin
7AI Tooling / DevOps (Claude Code)Mar 19 – Apr 13Claude commands and agents, PR reviews, *skills*, type generation — internal team productivity
8Trading toolsApr 2 – May 5Tools page, liquidation calculator (formula verified vs Binance/Bybit), trading journal, animations
9Legal & contentApr 29 – May 5Cookies, terms and conditions (styling); privacy and disclaimer pending (see §3)
10Branding & mascotApr 2–30Brand typography and colour palette app-wide, mascot customisation, video
11Admin panelMar 26 – Apr 17Google Cloud account, feature management (cross-cutting: LMS/Audio/Payments)

Note: 5 cross-cutting tickets (debug loggers, dashboard layout, route info, sprint presentation) are not assigned to a single area. Administration is also distributed within Courses, Audio, and Payments (exam CRUD, audio from admin, billing).


🎨 Design & Brand (Design team)

Deliverables by the Design team in the same period (data provided by the Design team; not from Jira/GitHub):

AreaPeriodWhat was delivered
Visual identity & logoMar 15–18Investigation & concept, moodboarding (visual direction), typography & color palette, logo suite, social profile pics & banners
Brand mascotMar 19–22Mascot concept & development, character presentation
Website — Home / 404 / LoginMar 23 – Apr 5Home wireframe & complete mockup, hero banner & assets (icons & video), Home feature cards
Website — Plans pageApr 10–11Plans-page section design
Website — Course page + assets & socialApr 13–30Complete Course-page design, certificate, lesson banners (Modules 1 & 2), feature cards, icon set, Course-page certificate, social setups (Facebook, Instagram, X, TikTok), launch-post designs

3. Pending items (real Jira status, no sugar-coating)

Of the 215 epic tickets, 15 are not Done:

To Do (10) — launch gates, not lost work:

TicketWhat it is
SD-293Update production API KEYS for NowPayments
SD-315Organise environment variables in Vercel
SD-669/legal/privacy page (Privacy Policy)
SD-670/legal/trading-disclaimer page
SD-672Collect client's legal entity data to publish T&C
SD-673Promote /legal/terms from draft to published
SD-454Migrate useCourseProgress to Server Actions
SD-525Exam distribution strategy (random + weighted modes)
SD-369Architecture observations
SD-483Replace placeholder exam when the real content arrives

Blocked (2):

TicketWhat it isWhy
SD-285Google Cloud Console branding (production) + logo reviewDepends on external material/decision
SD-517Highlight words as audio playsRequires ElevenLabs plan upgrade (API)

Won't Do (3): SD-307, SD-390, SD-391 — discarded infrastructure decisions (not failed work).

Several pending items depend on the client (legal entity data for T&C — SD-672, real exam content — SD-483, audio plan upgrade — SD-517), not on the development team.



4. 🤖 AI conclusion — project maturity (an honest assessment)

This section was generated by AI (Claude). It is an honest, independent assessment —not a sales pitch— based on the real Jira and GitHub data and on reading the project's code. It states both the verifiable strengths and what is still missing.

Verdict: LearnTrading is not a façade prototype. It is a product with **real, near-production-grade

engineering**, built on solid foundations that are verifiable in the code:

versioned migrations and *server actions* with typed error handling. Data lives in a real database, not

in frontend mocks.

and audio are created and edited from an admin panel with real CRUD against the database — it is

not "faked" from the frontend. An administrator can operate the product without touching code.

password recovery, email confirmation and proper session handling, with creator/student roles.

cancellations and end-to-end-tested idempotency.

progress tracking.

the lessons.

decisions**: legal pages (privacy, disclaimer, T&C — they require the client's legal-entity data),

NowPayments production keys and the final ordering of environment variables. Word highlighting during

audio is blocked by an ElevenLabs plan upgrade.

Estimated maturity: an essentially complete, production-quality MVP — clearly above a landing page

with simulated logic. The remaining work is launch closeout, not core construction: with the client's

inputs (legal data, production keys) and a few decisions, the product is launch-ready.

_— Analysis generated by Claude (AI). Sincere and independent; based on real Jira/GitHub data and the project's code._

_Sources: Jira epic SD-227 and GitHub swissbull-group/learntrading, pulled live on Jun 29 2026. Team report (not per-person). Nothing invented._