<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>PhilFan</title>
        <link>https://philfan.cn/</link>
        <description>PhilFan's Blog</description>
        <lastBuildDate>Mon, 17 Aug 2026 08:04:27 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>PhilFan</title>
            <url>https://philfan.cn/avatar.png</url>
            <link>https://philfan.cn/</link>
        </image>
        <copyright>CC BY-NC-SA 4.0 2026-present © PhilFan</copyright>
        <atom:link href="https://philfan.cn/feed.xml" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[ZJU Charger]]></title>
            <link>https://philfan.cn/posts/zju-charger</link>
            <guid isPermaLink="true">https://philfan.cn/posts/zju-charger</guid>
            <pubDate>Sat, 01 Nov 2025 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p><a href="https://charger.philfan.cn/">ZJU Charger</a>. is a fast, one-click visual website for checking charging station availability on campus.<br>
Solve three major problems: <strong>difficulty finding charging stations, scattered vendor<br>
entrances, and inconvenient status checks.</strong></p>
<ul>
<li>proficiency in: Next.js, Web Crawler, AMap API, FastAPI, wechat mini-program.</li>
<li>won the Excellence Award in the 2025 AMap Spatial Intelligence Developer Competition.<br></li>
</ul>
<p align="center">
<img
  src="https://img.philfan.cn/logo.gif"
  alt="logo"
/> <img
  src="https://img.philfan.cn/20260126202445838.webp"
  alt="zju-charger"
/>
</p>
<!-- more -->
<blockquote>
<p>For better reading experience, please refer to my WeChat article: <a href="https://mp.weixin.qq.com/s/fh2EriLV7aPlDiwghRCwzw">ZJU Charger:便捷高效的充电桩查询助手</a></p>
</blockquote>
<p>It offers five key features to make charging easier:</p>
<ol>
<li><strong>Campus Switch</strong> – Instantly switch between campuses to see all charging stations in each location.<br>
<img src="https://file.cc98.org/v4-upload/d/2025/1207/kkpmgmmj.gif" alt="img"></li>
<li><strong>Station Sorting</strong> – Sort stations by distance or availability for the fastest, most efficient charging.<br>
<img src="https://img.philfan.cn/20260109231544728.webp" alt="img"></li>
<li><strong>Station Navigation</strong> – Long-press or double-click a station to open navigation in Gaode or system maps.<br>
<img src="https://file.cc98.org/v4-upload/d/2025/1207/iosiqqt3.gif" alt="img"></li>
<li><strong>Station Favorites</strong> – Star your frequently used stations to keep them at the top of your list.<br>
<img src="https://img.philfan.cn/20260109231623593.webp" alt="img"></li>
<li><strong>Light &amp; Dark Mode</strong> – Toggle between bright and dark themes for comfortable viewing anytime.<br>
<img src="https://file.cc98.org/v4-upload/d/2025/1207/ohwzdjl4.gif" alt="img"></li>
</ol>
<p>What's more, it supports iOS's shortcut feature. You can subscribe to your frequently used charging<br>
stations and view their status in real-time.<br>
<img src="https://img.philfan.cn/20260110003309105.webp" alt="img"></p>
]]></content:encoded>
            <author>hw.phil.fan@gmail.com (PhilFan)</author>
        </item>
        <item>
            <title><![CDATA[Celechron]]></title>
            <link>https://philfan.cn/posts/celechron</link>
            <guid isPermaLink="true">https://philfan.cn/posts/celechron</guid>
            <pubDate>Wed, 01 Oct 2025 00:00:00 GMT</pubDate>
            <content:encoded><![CDATA[<p>In this project, I committed over <strong>16</strong> pull requests to one of the most-used ZJU utility apps, <strong><a href="https://github.com/Celechron/Celechron">Celechron</a></strong>, enhancing user experience and fixing bugs.</p>
<ul>
<li>used by <strong>6K+</strong> ZJU students.</li>
<li>proficiency in: Flutter, Mobile Development, Git.</li>
</ul>
<!-- more -->
<h2>My Contributions</h2>
<ul>
<li><strong>Open-source contributor:</strong> <strong>16 pull requests submitted, 16 merged</strong> — shipped user-facing<br>
improvements and bug fixes through upstream collaboration.</li>
<li><strong>Community-facing impact:</strong> Published <strong>two release/feature posts</strong> that reached<br>
<strong><a href="https://www.cc98.org/">CC98</a> Top 10</strong> (ZJU's campus forum), helping drive adoption<br>
and gather feedback:
<ul>
<li><a href="https://www.cc98.org/topic/6331383">Celechron v1.1.0 update post (CC98)</a></li>
<li><a href="https://www.cc98.org/topic/6345259">Feature survey + sneak peek post (CC98)</a></li>
</ul>
</li>
<li><strong>Problem-driven development:</strong> Started from my own pain point, then iterated based on community issues and user research.</li>
</ul>
<hr>
<h2>What is Celechron?</h2>
<p class="project-meta">
  <img class="star-badge no-preview" alt="stars" src="https://img.shields.io/github/stars/Celechron/Celechron?style=social">
  <img class="star-badge no-preview" alt="license" src="https://img.shields.io/github/license/Celechron/Celechron">
  <img class="star-badge no-preview" alt="release" src="https://img.shields.io/github/v/release/Celechron/Celechron">
  <img class="star-badge no-preview" alt="commits" src="https://img.shields.io/github/commit-activity/m/Celechron/Celechron">
  <img class="star-badge no-preview" alt="contributors" src="https://img.shields.io/github/contributors/Celechron/Celechron">
</p>
<p>Celechron is a time-management and campus-utility app built for <strong>Zhejiang University (ZJU)</strong><br>
students, initiated by <a href="https://github.com/iotang">iotang</a> and <a href="https://github.com/n0sig">n0sig</a>.<br>
It originated as an SQTP project and provides an all-in-one experience for:</p>
<ul>
<li>Task planning</li>
<li>Undergrad/grad course timetable viewing</li>
<li>Grade lookup</li>
<li>One-tap payment code display</li>
</ul>
<p><strong>Links:</strong> <a href="https://github.com/Celechron/Celechron">GitHub Repository</a> ·<br>
<a href="https://github.com/Celechron/Celechron/releases">Releases</a> ·<br>
<a href="https://github.com/Celechron/Celechron/issues">Issues</a></p>
<p><img src="https://img.philfan.cn/20251125100646716.webp" alt="feature"></p>
<p><img src="https://img.philfan.cn/20251125100709320.webp" alt="task"></p>
<p><img src="https://img.philfan.cn/20251125100738688.webp" alt="widget"></p>
<h2>How I Got Involved</h2>
<p>I was one of the early users of Celechron — I first installed it during the <strong>TestFlight beta</strong> stage.</p>
<ul>
<li>
<p>I opened <a href="https://github.com/Celechron/Celechron/issues/10"><img class="star-badge no-preview" alt="issue-10" src="https://img.shields.io/badge/issue-10-red"></a>.<br>
At the time, I didn't have enough experience with the relevant tooling (and an earlier<br>
Flutter demo attempt didn't go well), so it remained unimplemented for a while.</p>
<p><img src="https://img.philfan.cn/20251125105541159.webp" alt="issue 10"></p>
</li>
<li>
<p>Later, when the previous tool <code>ical.top</code> stopped working (because DingTalk removed the<br>
timetable page), I invested time to learn the toolchain (with AI assistance), built an<br>
initial working version, and iterated with maintainers to fix bugs during review.</p>
</li>
</ul>
<h2>Some Takeaways</h2>
<ul>
<li>Start from real, personal pain points and solve them end-to-end.</li>
<li>Address issues raised by the community.</li>
<li>Run lightweight user research and iterate features based on feedback.</li>
</ul>
]]></content:encoded>
            <author>hw.phil.fan@gmail.com (PhilFan)</author>
        </item>
    </channel>
</rss>