Skip to content

Transition to Flutter: Migrate web app to cross-platform Flutter application#9

Draft
Copilot wants to merge 9 commits intomainfrom
copilot/transition-to-flutter
Draft

Transition to Flutter: Migrate web app to cross-platform Flutter application#9
Copilot wants to merge 9 commits intomainfrom
copilot/transition-to-flutter

Conversation

Copy link

Copilot AI commented Nov 26, 2025

Migrates the DSE Past Papers web application from static HTML/CSS/JS to Flutter for cross-platform deployment (Web, iOS, Android).

Implementation

Core Application (558 LOC Dart)

  • lib/main.dart - Material Design 3 app with Inter typography
  • lib/screens/home_screen.dart - Subject grid with glassmorphic cards
  • lib/screens/subject_screen.dart - Subject details with dynamic year generation
  • lib/widgets/glass_card.dart - Reusable glass card using BackdropFilter
  • lib/services/subject_service.dart - Subject data provider
  • lib/models/subject.dart - Subject data model
  • lib/constants.dart - App-wide constants (colors, gradients, years)

Platform Configuration

  • Web: PWA manifest, index.html
  • Android: Gradle build files, AndroidManifest
  • iOS: Info.plist
  • GitHub Actions: Flutter CI with CodeQL scanning

Architecture Decisions

  • Service layer for data management over hard-coded widgets
  • Dynamic year generation with optional startYear for testability
  • Single BackdropFilter per card (removed nested blur for performance)
  • Minimal dependencies: flutter, google_fonts, cupertino_icons

Preserved

  • All original HTML files and asset folders remain unchanged
  • Original glassmorphic design aesthetic maintained
  • 11 subjects (4 active: Geography, Chinese, English, Economics)

Example

// Dynamic years prevent hardcoded dates
AppConstants.getAvailableYears(count: 6, startYear: 2024)
// Returns: ['2024', '2023', '2022', '2021', '2020', '2019']

// Service layer abstracts data from UI
final subjects = SubjectService.getAllSubjects();

Documentation

  • MIGRATION.md - Architecture comparison and migration rationale
  • QUICKSTART.md - Developer setup (5 min to first run)
  • FEATURES.md - Current features and roadmap
  • SUMMARY.md - Project metrics and completion status

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://storage.googleapis.com/flutter_infra_release/flutter/13e658725ddaa270601426d1485636157e38c34c/dart-sdk-linux-x64.zip
    • Triggering command: /usr/bin/curl curl --retry 3 --continue-at - --location --output /tmp/flutter/bin/cache/dart-sdk-linux-x64.zip REDACTED (http block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

This section details on the original issue you should resolve

<issue_title>transition to flutter</issue_title>
<issue_description></issue_description>

Comments on the Issue (you are @copilot in this section)


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

@vercel
Copy link

vercel bot commented Nov 26, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
dse Error Error Nov 26, 2025 0:51am

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Nov 26, 2025

Deploying dse with  Cloudflare Pages  Cloudflare Pages

Latest commit: 939d056
Status: ✅  Deploy successful!
Preview URL: https://bc305479.dse-x5x.pages.dev
Branch Preview URL: https://copilot-transition-to-flutte.dse-x5x.pages.dev

View logs

Copilot AI changed the title [WIP] Transition to Flutter framework Transition to Flutter: Migrate web app to cross-platform Flutter application Nov 26, 2025
Copilot AI requested a review from tseminghong November 26, 2025 12:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

transition to flutter

2 participants