← Back to projects

SPORTS EXPERIENCE

Youth Sports Course Platform.

Connect mobile discovery with an admin interface, making course information easier to find and browse.

Tools & AppsCourse-display prototypeMini app / H5Vue / NestJSMulti-platform experience
View source on GitHub ↗
A three-interface course-display prototype for parents and course operators. Discover courses through a uni-app mini app or H5 site, browse the same courses in a Vue admin interface, and use shared interfaces provided by NestJS.
01

Why I built it

Parents need to quickly understand the sport, suitable ages, duration and teaching format. Operators need an easy way to filter and inspect courses. The project organizes information around these two needs.

02

What it includes

The mobile interface includes home, activities, profile and course-detail pages, with keyword search, categories and combined group/private-class filters. The admin interface supports course filters, read-only details and service-connection status.

03

Design decisions

The mobile and admin interfaces use the same course data and shared TypeScript API types. Loading, retries, empty results and missing courses have clear feedback. The frontend ignores stale responses so older requests cannot overwrite new filter results.

04

Implementation

uni-app, Vue 3 and Pinia build the mobile interface. Vue 3, Vite and Element Plus build the admin area. NestJS provides the API. A pnpm workspace manages all three interfaces and shared types, and demo courses run without a database.

05

Current state

This is a course-display prototype. Images come from a development demo in an H5 browser. Real accounts, bookings, payments, refunds and admin write operations are not connected. Activities retain a coming-soon message. The source includes local setup instructions.