The lab had a requirement to make datasets publicly available for download while also recording information such as how many people downloaded them, which led to this project.
CITE Lab MoCap and Humanoid Group Download Center

Download Interface

Admin Panel
Initially, I thought about using FastAPI + SQLite, which I'm more comfortable with. I fed the following prompt directly to AI (Claude 3.7 Sonnet), and the output was quite usable. There were mainly two bugs: one was that SMTP email sending didn't use encryption, and the other was that the version of NJU Box was too old, so I still had to manually find the corresponding Seafile API.
However, the interface was mediocre, and many features were not easy to extend. So I thought about refactoring this project using more modern technologies like Next.js. But whether I let AI reference existing code to refactor or started from scratch with prompts, the results were quite poor, even resulting in compilation errors rather than runtime bugs. I also tried several of the latest AI IDEs, but they were unsatisfactory as well.
In the end, I still had to rely on manual work. I spent a day building a framework first, then fed the files from the previous fastapi implementation to AI one by one, asking it to reference and complete the corresponding functionality in the current Next.js project. Then I gradually had it implement small feature improvements one by one, combined with manual bug fixing, and finally achieved the results shown in the two images above.
Current features:
- Tech stack: Next.js + TypeScript + Tailwind CSS + Ant Design + Seafile API + MongoDB + Redis
- Frontend provides a download interface where users can select files to download (multi-select supported).
- Supports downloads only from educational/academic email addresses, and requires proper email verification before downloading.
- Provides download terms that must be read before proceeding.
- Backend records user download history, including username, filename, download time, and other information, and provides an admin panel for viewing.
- Files are stored on Seafile (NJU Box), and this project only generates a temporary link for users to download, avoiding direct exposure of file links and saving server bandwidth.
- Parses the readme.md file in Seafile and displays it on the download interface as file documentation.
- Supports configuring subpaths for deployment on existing websites.
- Supports dark mode.
- Uses AI to parse organization names based on email addresses.
@Que: "There's no such thing as a useless AI, only humans who aren't stubborn enough."