30 Commits

Author SHA1 Message Date
xiaomai
6de61c24b2 style(theme): expand color palettes and refine dark mode styles
- Expand CSS variables for primary and secondary colors to include full 50-950 scales in `main.css`.
- Update components to reference specific color shades (e.g., `primary-400`, `secondary-200`) instead of generic variables.
- Add dark mode background and text colors to Events, Hall of Fame, and Index sections.
- Adjust image aspect ratio in the Events component.
2025-11-28 17:27:34 +08:00
xiaomai
f6bbd95b77 chore(assets): migrate local images to remote storage
- Replace local image paths with remote URLs in components, content, and config.
- Remove local image files from the public directory to reduce repository size.
- Add dark mode support for the hero background image in `index.vue`.
2025-11-28 16:45:30 +08:00
xiaomai
a28bb3a54d feat(news): enhance SEO meta tags and add clarification article
- Update news detail page to use `useSeoMeta` for comprehensive Open Graph and Twitter Card support.
- Implement logic to prioritize `ogImage` and `seoTitle` with fallbacks to standard fields.
- Add new content article clarifying the distinction between the Alumni Association and the Alumni Liaison Office.
- Add documentation drafts for onboarding messages and announcement design.
2025-11-28 11:54:11 +08:00
xiaomai
9bca019b50 feat(seo): improve SEO configuration and enable SSR
- Enable `ssr: true` in `nuxt.config.ts` for server-side rendering of meta tags.
- Implement `useSeoMeta` in `events/.vue` with fallback logic for Open Graph and Twitter cards.
- Update `content.config.ts` to use `asSeoCollection` for the news collection.
- Migrate event markdown frontmatter to use standardized SEO fields.
2025-11-27 23:07:24 +08:00
xiaomai
6288a1b01b feat(content): add draft support for content collections
This commit introduces a draft system for the 'events' and 'news' collections. A `draft` boolean field has been added to the content schema, and frontend queries are now updated to only fetch and
display content where `draft` is `false`. This allows content to be created and saved without being publicly visible, improving the publishing workflow.
2025-11-27 17:53:42 +08:00
xiaomai
c7da09d327 refactor(ui): adopt Nuxt UI prose styles and apply various fixes
Replaces custom `markdown.css` with the default prose styling from Nuxt UI to simplify the styling architecture. This commit also includes several other fixes and improvements:

- fix(members): Correctly
handle empty `graduateYear` strings in the member list.
- fix(layout): Wrap `NuxtPage` in a div to resolve page transition issues.
- feat(seo): Add a meta title to the homepage.
- docs(content): Correct
the title and add an image to an event page.
2025-11-15 13:25:42 +08:00
xiaomai
2ac1428c34 feat(members): add member ID to members list
This commit introduces a 'Member ID' column to the members table, making it the first column for easy reference.

- The member data schema and sample CSV have been updated to include the `memberId`.
- The members page now displays the `memberId` for each member.
- Additionally, a version query string has been added to the hero image URL to force a cache refresh.
2025-11-02 22:37:17 +08:00
xiaomai
3da20d0097 feat(members): add members listing page
This commit introduces a new `/members` page to display a directory of alumni association members.

- Member data is sourced from a CSV file (`content/members/members.csv`) and managed via Nuxt Content.
- The page presents member information in a table, including calculated graduation class (`届别`).
- A link to the new page has been added to the main navigation.
- Minor UI tweaks and data corrections in other sections are also included.
2025-11-02 22:09:57 +08:00
xiaomai
f5d9963f3c feat(about): add organizational structure page
This commit introduces a new page to display the alumni association's organizational structure.

- Adds a new page at `/about/org-structure` to showcase the committee members.
- Displays each member's photo, position, name, and a brief description of their role.
- The structure is organized into categories: Leadership Team, Functional Departments, and Specialized Departments.
- A navigation link has been added to the main layout sidebar for easy access.
2025-11-02 15:25:19 +08:00
xiaomai
cf6dfac6a3 docs(presentation): add drafts for launch presentation slides
This commit adds two draft documents for the official website launch presentation. These files outline the structure, key messages, and content for the slides.

- `PPT Designs v1.md`: Provides a standard presentation structure covering the project's goals, features, and roadmap.
- `PPT Designs v2.md`: Offers a more refined narrative focusing on value, contribution, and open-source aspects, including copy for press releases and announcements.
2025-11-02 00:23:52 +08:00
xiaomai
2649cca69d docs: add comprehensive project documentation and MIT license
Replaces the generic Nuxt starter README with detailed documentation specific to the YPHS Alumni website project.

The new README.md now includes:
- Project overview, tech stack, and key features
- Local development, build, and deployment instructions
- Content authoring guide for news, events, and hall of fame
- Project roadmap and contribution guidelines

Additionally, this commit adds an MIT license file to formally establish the project's open-source status.
2025-11-01 23:38:39 +08:00
xiaomai
59fc6cb13d feat(seo): improve SEO and add analytics tracking
This commit introduces several enhancements for SEO and analytics.

- Updates the canonical site URL from `yphsalumni.com` to `yphsalumni.org`.
- Enriches the 'middle-highschool-tuition-class' page with detailed Open Graph (og) meta tags for better social sharing.
- Implements Umami event tracking for the 'Join Us' button on the homepage.
2025-11-01 23:31:45 +08:00
xiaomai
33334a7515 style(ui): improve layout and responsiveness of tuition class page
This commit adjusts the styling on the 'Middle/High School Tuition Class' page to enhance its appearance and readability,
particularly on mobile devices.

- Implemented responsive padding for the main page and content container.
- Justified the main text block for better readability.
- Centered the student name badges.
- Added configuration files for the `repomix` project analysis tool.
2025-10-30 17:48:30 +08:00
xiaomai
c468da8780 feat(about): add page for 1956 middle highschool tuition class
This commit introduces a new page dedicated to the 'Middle Highschool Tuition Class' of 1956 (中补班). The page displays a letter written in 2022, calling for a reunion of these special alumni. A navigation
link has been added to the 'About' section for easy access to this historical content.
2025-10-27 22:18:07 +08:00
xiaomai
c3e05d790c feat(content): add founding history page for the alumni association
This commit introduces a new page detailing the founding history of the alumni association.

- Adds the new page at `/about/founded-history` which includes the origin story, organizational structure, and a list of donors for the clubhouse.
- Restructures the `/about` route by moving the existing page to `/about/index` to accommodate nested pages.
- Updates the main navigation menu to include a dropdown link to the new 'Founding History' page.
- Adds a link to the old alumni website under 'Friendly Links' for historical reference.
2025-10-27 20:50:59 +08:00
xiaomai
0a46c3e591 refactor(join-us): adopt UPage layout components
The 'Join Us' page layout has been refactored to use the `<UPage>` and `<UPageBody>` components from Nuxt UI. This change ensures a consistent page structure with the rest of the application. Additionally,
quote styles in the script section have been standardized to double quotes.
2025-10-26 23:44:04 +08:00
xiaomai
567c9ef9c9 feat(app): restructure to multi-page layout and add content pages
Converts the website from a single-page design with anchor links to a full multi-page application. This change improves site organization, navigation, and scalability.

- Adds new top-level pages: `/news`, `/events`, and `/about`.
- Introduces a new section for the 40th Anniversary at `/40th-anniversary`, including a proposal sub-page.
- Updates the default layout with a new navigation menu, a promotional banner, social links, and page transitions.
2025-10-26 22:18:29 +08:00
xiaomai
a864ffd9cf chore(deps): bump nuxt from 4.1.3 to 4.2.0
This commit updates the Nuxt framework dependency to version 4.2.0 to incorporate the latest features and bug fixes.
2025-10-25 15:11:45 +08:00
xiaomai
7bcabb0c71 feat(ui): implement responsive header and update content
Adds a responsive header with a mobile navigation menu to improve usability on small screens. This also includes adding a new event page, updating an existing event with a schedule, and refactoring the 'Donate' CTA by
inlining it on the homepage.
2025-10-23 14:12:52 +08:00
xiaomai
6473bdcc15 refactor(ui): adopt Nuxt UI components for homepage and layout
This commit refactors the main layout and homepage to utilize components from the Nuxt UI library, simplifying the
codebase and reducing custom boilerplate.

- The default layout is now built with `UPage`, `UHeader`, `UMain`, and `UFooter`.
- The homepage (`pages/index.vue`) has been updated to use `UPageHero` and `UBlogPosts`.
- The `IndexHero` and `IndexNews` components have been removed as their functionality is now integrated directly into
the index page.
- `Donate`, `Events`, and `HallOfFame` components are now wrapped with `UPageCTA` or `UPageSection`.
2025-10-23 09:16:59 +08:00
xiaomai
e7f2bc2c47 feat(admin): implement initial admin dashboard and member management
This commit introduces the foundational structure for the admin dashboard, focusing on the member management feature.
Key additions include:

- A new page at `/admin/manage/members` to display and manage members.
- An `AddModal` component with a comprehensive form for creating new members, featuring validation with Zod and input
masking.
- A reusable `PhoneInput` component with country code selection, backed by a new `useCountries` composable and a full
country dataset.
- A custom, user-friendly global error page (`error.vue`) to handle application errors gracefully.
- Updated dashboard sidebar navigation to include the new member management section.
- Added recommended VS Code extensions and settings to improve developer experience.
2025-10-22 21:40:30 +08:00
xiaomai
1fedf7094c refactor(admin): simplify entry route to point to dashboard
The `/admin` route now directly serves the dashboard page by adding an alias, removing the need for a separate login page at that path.

- Deletes `pages/admin/index.vue` and the `admin-login` layout.
- Aliases `/admin` to `/admin/dashboard` for a more direct entry point.
- Improves the default layout with a sticky footer.
- Updates VSCode settings for better Tailwind CSS IntelliSense.
2025-10-09 09:22:21 +08:00
xiaomai
cc7b2a7398 feat(admin): integrate markdown editor for news creation
This commit replaces the basic textarea in the 'Add News' modal with a full-featured Markdown editor.

- Adds the `md-editor-v3` dependency.
- Implements the editor within a `ClientOnly` component for client-side rendering.
- Creates a Nuxt plugin to register the `MdEditor` component globally.
- Adjusts the modal to be fullscreen to provide a better user experience for content creation.
2025-10-08 10:13:18 +08:00
xiaomai
3254926c43 chore(deps): update project dependencies
Bumps several dependencies to their latest patch versions, including Nuxt, Tailwind CSS, and TypeScript. This keeps the project up-to-date with recent bug fixes and
improvements.
2025-10-08 09:14:55 +08:00
xiaomai
6f181d3f22 feat(admin): add initial admin dashboard structure
This commit introduces the foundational structure for the new admin dashboard.

- Utilizes @nuxt/ui to build the dashboard layout, including a collapsible sidebar and navigation.
- Adds initial pages for the dashboard, news, events, and hall of fame management.
- Implements a composable `useDashboardSidebarLinks` for managing sidebar navigation.
- Refactors the default layout by integrating the header and footer directly.
- Swaps the primary and secondary theme colors across the application.
2025-10-08 09:05:14 +08:00
xiaomai
b05faddfc0 feat(seo): implement dynamic page titles
This commit enhances SEO and user experience by setting dynamic page titles for detail pages and updating the global title configuration.

- Event, Hall of Fame, and News detail pages now use the specific item's title as the page title.
- The global `titleTemplate` and default `title` in `nuxt.config.ts` have been updated for better branding.
- These changes ensure each page has a unique, descriptive title, which is beneficial for search engine ranking and browser tab clarity.
2025-10-04 11:03:21 +08:00
xiaomai
950dc60891 feat(seo): implement SEO enhancements and social media embeds
This commit introduces significant SEO improvements and enhances content embedding capabilities.

- Integrates `@nuxtjs/seo`, `@nuxtjs/sitemap`, and `@nuxtjs/robots` to boost search engine visibility.
- Configures global meta tags, including Open Graph and Twitter Cards, for richer social media sharing.
- Adds support for embedding YouTube and Facebook content directly within markdown pages.
- Introduces a new `TikTokEmbed` component for future use.
2025-10-04 10:10:46 +08:00
xiaomai
a6970b46cd refactor(assets): self-host all images
Migrated all images from the external host `img.tootaio.com` to be self-hosted within the project's `public` directory. This change improves performance, reliability, and
removes dependency on a third-party service. Additionally, the analytics script has been temporarily disabled.
2025-10-03 17:10:21 +08:00
xiaomai
09ec61e315 feat(app): introduce Hall of Fame section and refactor UI
This commit adds the '名人堂' (Hall of Fame) feature and removes the Element Plus dependency.

- feat(content): Add Hall of Fame section with a new content collection, homepage component, and detail pages.
- refactor(join-us): Rewrite the 'Join Us' form to remove Element Plus, using native elements and Reka UI. The form is
temporarily disabled.
- feat(ui): Display cover images on News and Events cards.
- chore: Integrate Umami for web analytics.
- fix: Correct minor text issues, including graduation year in the footer.
2025-10-03 16:23:16 +08:00
xiaomai
e93b931288 initial commit 2025-10-01 16:52:52 +08:00