74 lines
11 KiB
Markdown
74 lines
11 KiB
Markdown
# Bundle 0 public content inventory
|
||
|
||
Captured 2026-09-24 from the local frontend source and browser. This is a classification record, not an approved seed. `E` = editorial/site identity (future CMS), `D` = existing domain data, `U` = functional UI kept in code. Paths below are relative to `guilan-ace-frontend/`. Every public route is listed; repeated controls inherit the shared-shell row.
|
||
|
||
The [line-level source ledger](content-source-lines.csv) records all Persian-bearing, URL and image-reference lines in the static public-content files with an E/U classification and exact source text. Regenerate it with [the extraction script](build-content-line-ledger.ps1). Dynamic event/blog values are not hard-coded literals, so their domain ownership is mapped in the route table instead. Mixed lines are annotated in the ledger and must be split field by field in the T12 seed manifest.
|
||
|
||
## Route map
|
||
|
||
| Route | Source | E: future CMS | D: existing model/API | U: code-owned |
|
||
| --- | --- | --- | --- | --- |
|
||
| `/` | `src/app/page.tsx`, `src/views/Home.tsx` | Identity, hero, three offering descriptions, closing invitation, page SEO and Organization JSON-LD | None today | Link destinations and action labels, layout |
|
||
| `/about` | `src/app/about/page.tsx`, `src/views/AboutUs.tsx` | Identity, mission, values, affiliations, committees, FAQ answers, contact/address, page SEO and AboutPage JSON-LD | None today | FAQ interaction, external-link behavior |
|
||
| `/events` | `src/app/events/page.tsx`, `src/views/Events.tsx` | Listing introduction and default SEO/site name | Event list, dates, prices, capacity, status, images and filters from events API | Search/filter labels, loading/empty/error text and controls; query-specific SEO wording |
|
||
| `/events/[slug]` | `src/app/events/[slug]/page.tsx`, `src/views/EventDetail.tsx` | Shared identity only | Event title/body/poster, organizer, eligibility, registration dates/capacity, price, SEO and registration-success markdown from event API | Registration/payment actions, validation, state and error messages; Event JSON-LD structure |
|
||
| `/events/[slug]/success` | `src/app/events/[slug]/success/page.tsx`, `src/views/EventFreeSuccessPage.tsx` | Shared identity only | Verified registration/ticket/event details from API | Confirmation, pending/failure states and metadata labels |
|
||
| `/payments/result` | `src/app/payments/result/page.tsx`, `src/views/PaymentResult.tsx` | Shared identity only | Verified payment and event details from API | Callback outcome text, retry and status controls |
|
||
| `/blog` | `src/app/blog/page.tsx`, `src/views/Blog.tsx` | Listing introduction and default SEO/site name | Banners, posts, categories, tags, authors and images from blog API | Search/filter/pagination, loading/empty/error text; query-specific SEO wording |
|
||
| `/blog/[slug]` | `src/app/blog/[slug]/page.tsx` | Shared identity only | Post text, authors, media, metadata, comments/interactions from blog API | Reading controls, sharing, error/empty text and BlogPosting JSON-LD structure |
|
||
| `/auth`, `/auth/google/callback` | `src/app/auth/**`, `src/views/Auth.tsx`, `src/views/GoogleAuthCallback.tsx` | Shared identity only | Account existence, OTP and authentication responses | Form labels, constraints, steps, errors, resend/callback states |
|
||
| `/verify-email/[token]`, `/reset-password`, `/reset-password/[token]`, `/logout` | matching `src/app/**`, `src/views/**` | Shared identity only | Verification/reset result from auth API | Instructions, form labels, success/failure states |
|
||
| `/profile` | `src/app/profile/page.tsx`, `src/views/Profile.tsx` | Shared identity only | User profile and notifications | Profile controls and validation |
|
||
| `/admin/**` | `src/app/admin/**`, `src/views/Admin*.tsx` | Shared identity only | Events, users, blog and taxonomy records | Staff navigation, forms, authorization, errors and confirmations |
|
||
| not found | `src/app/not-found.tsx` | Shared identity only | None | Error explanation and navigation |
|
||
|
||
## Shared shell and static source fields
|
||
|
||
| Stable group | Current source | Destination and notes |
|
||
| --- | --- | --- |
|
||
| `site.official_name`, `site.short_name`, `site.faculty_subline` | `src/components/Navbar.tsx:135-139`, `Footer.tsx:20`, `src/app/layout.tsx:20-27`; Home/About have more variants | E. Official name from `tasks/plan.md`; preserve the current header's short lockup and faculty subline as the refinement basis. Existing variants must be replaced together after cutover. |
|
||
| `site.logo`, `site.logo_alt` | `public/favicon.ico`; Navbar, Footer, Home/About OG and JSON-LD | E. Preserve source logo; CMS media copy later. `favicon.ico` is the only association mark found in `public/`. |
|
||
| `site.navigation` | `Navbar.tsx:143-145`, `MobileBottomNav.tsx:38-59`, `Footer.tsx:27-49` | E for public link label/order/visibility; U for route IDs, selected state, auth/profile actions, responsive behavior. No arbitrary external route can bypass URL validation. |
|
||
| `site.footer_description`, `site.copyright` | `Footer.tsx:22-25,125` | E for descriptive copy and name; U for current year. |
|
||
| `site.contacts`, `site.social_links`, `site.address` | `Footer.tsx:51-98`, `AboutUs.tsx:117-136,315-344`, `src/app/page.tsx:39-43` | E. User selected About-page contact values on 2026-09-24. Footer and JSON-LD conflicts are listed below. Keep route-level links functional. |
|
||
| `site.seal` | `public/enamad.png`, `Footer.tsx:103-118` | E for approved seal image/destination; verify legal ownership and destination before moving into CMS. |
|
||
| `site.seo_defaults` | `src/app/layout.tsx:20-27`; site name repeated in events/blog/event/post metadata | E for title/description/OG identity; U for canonical URL construction, search `noindex`, schema structure. |
|
||
| `home.hero` | `Home.tsx:9-11,47-51` | E: title and paragraph. |
|
||
| `home.offering_events`, `home.offering_articles`, `home.offering_community` | `Home.tsx:68-101` | E: headings, subtitles, paragraphs; U: links to existing routes. These are editorial claims, not new domain entities. |
|
||
| `home.join` | `Home.tsx:106-122` | E: heading and explanatory paragraph; U: signup action/route. |
|
||
| `home.seo` | `src/app/page.tsx:5-48`, `Home.tsx:13-43` | E: title, description, OG image, organization name/description/contact; U: canonical and JSON-LD field structure. Two SEO implementations currently duplicate values. |
|
||
| `about.intro`, `about.mission`, `about.values` | `AboutUs.tsx:46-55,163-200` | E. Intro count claims need evidence before publication. |
|
||
| `about.affiliations` | `AboutUs.tsx:58-99,234-283` | E if association relationship is confirmed. Names, establishment years, focus areas and links require owner review; do not seed as verified facts merely because code contains them. |
|
||
| `about.committees` | `AboutUs.tsx:100-113,289-302` | E. Committee existence and descriptions require owner review. |
|
||
| `about.faq` | `AboutUs.tsx:304-310` | E for questions/answers; U for `<details>` disclosure and registration route semantics. The student-ID assertion needs backend confirmation. |
|
||
| `about.location`, `about.join` | `AboutUs.tsx:315-348` | E for address, postcode, telephone, map URL and invitation; U for mail/Telegram link actions. |
|
||
| `about.seo` | `src/app/about/page.tsx:5-57`, `AboutUs.tsx:7-40,139-160` | E for title, description, keywords, OG image, identity and sameAs; U for canonical/schema structure. Duplicated client/server SEO values conflict. |
|
||
| `events.intro`, `blog.intro` | `src/app/events/page.tsx:19-37`, `src/app/blog/page.tsx:24-42` | E for default listing title/description/OG image; U for search-specific title/description and robots behavior. |
|
||
|
||
Every image reference in the targeted static public shell is covered by `site.logo`, `site.seal`, or the external About map. Event posters, blog images, banners, avatars and user uploads stay with their existing domain records. There is no Home/About photography in the frontend repository. The owner's revised Home proposal adds featured event and post previews after the intro. Those previews are **D** content from existing APIs; only their section headings/intro/link labels and CTA are **E**. The existing three-offering copy remains in the legacy inventory for audit but is no longer a required Home section.
|
||
|
||
## Conflicts and decisions
|
||
|
||
| Field | Conflicting source values | Status |
|
||
| --- | --- | --- |
|
||
| Association name | Home says `انجمن علمی کامپیوتر دانشگاه گیلان`; Navbar says `انجمن علمی مهندسی کامپیوتر`; Footer says `انجمن علمی کامپیوتر گیلان`; About leads with plural `انجمنهای علمی کامپیوتر گیلان` | Plan supplies official full name. The current header's short name remains the refinement basis; legacy variants stay listed for migration review. |
|
||
| Email | Home JSON-LD `admin@east-guilan-ce.ir`; Footer `info@east-guilan-ce.ir`; About `eastguilanceassociation@gmail.com` | User selected About-page contact on 2026-09-24. |
|
||
| Telegram | Footer `t.me/guilance`; About primary contact `t.me/guilancea`; About structured data lists both | User selected `t.me/guilancea` on 2026-09-24. |
|
||
| Instagram | Footer/About current association link is `instagram.com/guilance.ir`; About affiliate links include others | Current association link retained provisionally; affiliate links await relationship review. |
|
||
| Other social | Footer links to a personal LinkedIn profile and generic `x.com` | Do not seed into association identity without owner confirmation. |
|
||
| Statistics and dates | About says `۱۴۰۴`, `۱۰۰+`, `۱۰+`, `۲۰+`, while affiliation rows say `۱۳۹۲` and `۱۳۵۳` | Owner says repository facts are verified; map each value to its entity and as-of date before automatic publishing. Not needed in identity-first concepts. |
|
||
| Address/hours | Footer has a broad faculty address; About adds Vajjargah, postcode, phone and response hours | User says in-repo contacts are verified; selected About page is source for contact details. Preserve exact legacy values in seed review. |
|
||
| About association links | `AboutUs.tsx:67` has a leading quote in the Instagram URL | Treat as a source defect; no automatic link publication. |
|
||
|
||
## Asset ownership
|
||
|
||
| Asset | Current use | Owner/approval action |
|
||
| --- | --- | --- |
|
||
| `public/favicon.ico` | Navbar/Footer mark, browser favicon, OG and structured data | Current recognizable logo approved by user as repository asset. Need original vector/high-resolution master, license/source note, and CMS media copy before release. |
|
||
| `public/enamad.png` | Footer trust seal | Existing site asset; verify seal account and permitted use before migrating. |
|
||
| `src/app/fonts/Vazirmatn-variable.woff2` | All UI text | Code-owned font file; record license before redistributing in a new design bundle. |
|
||
| `public/placeholder.svg` | Generic placeholder | Code-owned fallback, not editorial association imagery. |
|
||
| Backend event/blog/gallery media | Dynamic listings/details | Existing domain data; ownership stays with those records. |
|
||
|
||
Source code was classified against local rendering at 390px and 1440px. The owner accepted the content boundary and exclusions in `bundle0-review.md` on 2026-09-26, closing Checkpoint A at inventory scope. Uncertain claims and URLs remain flagged for later seed review; no claim or URL is silently corrected here.
|