All points for this app's existence have been lost. I tried to justify it over time, but the current status quo has failed me significantly. Here are some reasons regarding this project's deprecation:
- Since June 2023, the school's website underwent a complete revamp. The new version features RWD (Responsive Web Design), which scales according to device type, and defeats the purpose of the main page function (Public CC).
- Since September 2024, the school's private bulletin board (Online CC) is outsourced and eventually becomes eClass. This renders the Online CC function useless since for one, the old website is no longer maintained or updated. In a few years' time, no one will be able to log in to this any more. For another, I don't have access to eClass's API, or it's website, so I'm unable to work on it. In fact, the school is slowly transitioning all the internal functions to eClass, and that itself makes up for this whole project's purpose.
- I have graduated from the school (Yes it has taken that long), and I will slowly lose access to many of the services available.
- There's really no reason to continue working on this for me since I left, also knowing that even if in the future someone tries to adopt this idea, the benefits are extremely minimal.
I'm still leaving this repository public if anyone wants to work on it, and also a list of stuff I originally planned to implement:
- Public CC: Tags (WIP)
- Public/Online CC: Star (WIP, use JSON)
- General: Fix issues on iOS (WIP)
- View: Implement Normal Light Mode for insufficient contrast
- View: Fix sharing mess
- ViewPrivate: Replace common HTML tags (gt/lt/amp, https://www.freeformatter.com/html-entities.html)
- Public CC: News Filtering (Date/Agency)
- Public/Online CC: News searching
- Public/Online CC: Swipe actions
- Upload/Online CC: Support Markdown (https://pub.dev/packages/flutter_markdown)
- Schedule: gr2 to Google Calendar API
- General: First time guide
- General: Migrate non-existent ASP.Net components
- General: Save randomised ASP.Net Cookie generated on first startup, as a result don't require login every time
- General: Swipe to refresh (RefreshIndicator, https://www.geeksforgeeks.org/flutter-implementing-pull-to-refresh/amp/)
- New: Links (should be easy)
- New: Announcement Images (Separate page, list view)
- New: Home page (like Google Keep Grid View)
- Note-taking: Grade Query
- New: Localisation
- Deprecated: Online Classes
- Deprecated: Migrate ASP shit into values.json (Values are collected on-demand)
"YanPing mobile app. Please make it good for fuck's sake"
That's the energy I gained when building this app, is to just mke it good. No unnecessary info included.
- The website layout is GARBAGE
- The website isn't very user-friendly
- The colour palette hurts my fucking eyes
- School project hehe
- A timely solution to reading information in an era when everybody has a phone (人手一機)
- Install the Flutter Framework (Official documentation)
- Run package get command
$ flutter pub get- Install the Flutter and Dart Extension for your desired IDE
- You're good to go! Your code should compile successfully right away
If you found my code unable to compile without modifications, submit an issue here on GitHub.
I recently talked about this project with my friend surrounding the release of NTU Unofficial App by my classmate in NTU Justin Chung. Upon the release of the app, it received widespread attention on Dcard and Threads. This is the second time I've seen him gather this much attention after Nojo on something that is very well needed by the public, or more accurately, the target audience of that app.
I felt like what lead this project to a dead end was multi-faceted, from poor planning and eventually not knowing who my app will appeal to. When I was a high school student coding this app, there wasn't any AI involved, ChatGPT wasn't even smart enough for that. Of course, the project was riddled with poor syntax and was only fixed recently. Not to mention I didn't even finish half of what was planned.
What I couldn't control was the fact that no one needed my app, and I had no channel to advertise it since there was no "student channel" that people can communicate with each other from. Despite this and NTU Unofficial App both have similar intentions if not the same, this project was doomed to be unknown my the majority. At least I didn't put the effort into publishing it to Google Play, it would've been a waste of time.
On a positive note, this project has actually taught me a lot about Flutter. It actually serves as an introduction to mobile app programming to me quite well, while still being fundamentally different from the likes of Android Kotlin programming.
Just to be clear, I'm not bitter or jealous about Justin, he totally deserved the attention, and I fully understand the differences between us. But I can't help but look back on this and wonder why so many things didn't go to plan. Not to mention the emotional damage after the tragic ITKiosk failure (IYKYK, don't ask me about it).
During Yanping's school anniversary back in November 2025, I chatted with some of my former teachers, and some mentioned that my beloved Head of the Information Department 林機賢 has left the school, with the Information Department as a whole outsourced to someone else entirely. Maybe someday I'll be able to return and serve? The future is unknown, but we'll see.
Written on 7 March 2026.