Youyu is a campus marketplace project extracted into its own standalone repository from an earlier course workspace.
It keeps the original product scope and engineering structure, while giving the project a cleaner home for continued development, documentation, and release management.
Youyu is a full-stack web application for a student-focused marketplace experience, including:
- a Vue 3 frontend for browsing, selling, ordering, reviewing, and profile management
- a Spring Boot backend for authentication, products, shops, orders, reviews, admin governance, and reporting
- structured project documentation for requirements, architecture, roadmap, API specs, and task execution
- database design and seed assets used during development
This repository is the current development baseline copied from the latest usable local project snapshot before the standalone repository was created.
Important context:
- the repository name is now
Youyu - internal docs, package names, and code paths are now aligned to
Youyu - historical migration notes remain under
migration-notes/for reference only
- Vue 3
- Vite
- Pinia
- Vue Router
- Element Plus
- Vitest
- Playwright
- Spring Boot 3.3
- Java 17
- JDBC with mapper-based data access
- JWT authentication
- MySQL for local runtime configuration
- H2 for test execution
frontend/: Vue applicationbackend/: Spring Boot applicationdatabase/: database design and migration reference materialdocs/: structured product, engineering, roadmap, API, and task documentationresources/: brand assets and supporting reference filesscripts/: helper scriptstests/: test records and supporting assetsmigration-notes/: notes copied from the old course repository during extraction
git clone https://github.com/meilingrl/Youyu.git
cd YouyuFrom backend/:
$env:SPRING_PROFILES_ACTIVE="seed"
mvnw.cmd spring-boot:runUse the seed profile the first time when you want demo users, demo products, and seeded transaction data.
For normal daily startup:
$env:SPRING_PROFILES_ACTIVE=""
mvnw.cmd spring-boot:runFrom frontend/:
npm ci
npm run devThe frontend development server runs at http://localhost:5173 and proxies API requests to the backend at http://localhost:8080.
npm run test
npm run buildmvnw.cmd testThe Compose stack exposes the frontend through Nginx on HTTP_PORT and proxies
/api/ plus uploaded media under /uploads/ to the backend container.
For a fresh seeded demo environment:
.\scripts\run-demo-fresh.ps1 -DetachRuntime uploads are stored in the backend-uploads Docker volume. If Alipay
sandbox is enabled, ALIPAY_SANDBOX_NOTIFY_URL must be a stable public HTTPS
URL that reaches /api/payments/callbacks/alipay-sandbox; localhost, container
hostnames, and expired tunnel URLs cannot receive Alipay callbacks.
From frontend/:
npm run test:e2eThis requires the backend and frontend to already be running.
Start here if you want the full project context:
AGENTS.mdCLAUDE.mddocs/README.mddocs/04-standards/development-process.mddocs/05-roadmap/current/stage-roadmap.md
Useful documentation areas:
docs/01-product/: product positioning and business contextdocs/02-requirements/: functional and non-functional requirementsdocs/03-architecture/: system and frontend/backend architecturedocs/04-standards/: development and repository rulesdocs/05-roadmap/: current progress and open questionsdocs/06-http/: executable HTTP request collectionsdocs/08-tasks/: active, draft, and archived execution tasksdocs/09-api-spec/: formal API specifications
- keep the frontend and backend split intact
- route frontend API access through
frontend/src/api/ - keep shared frontend state in Pinia stores
- preserve the backend layering: controller -> service -> mapper -> entity
- keep backend responses aligned with the shared
ApiResponseenvelope - update
CHANGELOG.mdfor substantive project work
This repository was created as a clean continuation path from a larger course workspace.
Because of that:
- some historical notes still refer to
Youyu migration-notes/contains reference files copied from the old repository root- the old course repository is being kept separately as backup and is not part of this repository's active workflow
- do new work in short-lived topic branches
- keep commits focused on one purpose
- verify frontend and backend changes locally before merging
- treat documentation updates as part of the implementation, not as optional follow-up
This project originated as course development work and is currently maintained as a personal project repository. If you plan to reuse or publish it more broadly, review the embedded course materials and project assets first.