Beta Alpha Psi Beta Tau Chapter’s resource ecosystem has two distinct surfaces: the Sponsors Network page (Documentation Index
Fetch the complete documentation index at: https://mintlify.com/asubap/website/llms.txt
Use this file to discover all available pages before exploring further.
/sponsors-network) where authenticated members browse a directory of all sponsors, and the Resources page (/resources) where they access files uploaded by those sponsors. This document covers both views, the data shapes they consume, and how sponsor-uploaded files — stored in Vercel Blob — reach members through signed URLs generated by the backend.
Sponsors Network Page — /sponsors-network
SponsorsNetworkPage is a protected route that lets any authenticated member (including sponsors and e-board members) explore the full sponsor directory. It fetches a summary list from the backend, then provides fuzzy-search and sort controls on top.
Data Fetching
BackendSponsor objects:
Sponsor type before passing it to NetworkList:
The
links field from the backend may arrive as a JSON-encoded string, a comma-separated string, or a plain array. The transformation logic tries JSON.parse, then falls back to splitting on commas.Search
Fuzzy search is powered by Fuse.js with the following key weights:| Field | Weight |
|---|---|
name | 0.8 |
about | 0.4 |
tier | 0.3 |
0.3 — tight enough to avoid noise while still handling typos.
Sorting
ASortDropdown lets members order the sponsor list by:
| Option | Value |
|---|---|
| Tier (Highest First) | tier-desc |
| Tier (Lowest First) | tier-asc |
| Name (A–Z) | name-asc |
| Name (Z–A) | name-desc |
tier-desc so the highest-tier sponsors appear at the top.
NetworkList Component
NetworkList is a shared grid component used across Members, Alumni, E-board, and Sponsors network pages. It accepts an array of MemberDetail | Sponsor entities and renders a card grid.
entity.type:
- Member cards
- Sponsor cards
Shows email, total hours, first link, major, about, graduation year, rank, and job-search status. Clicking opens
NetworkProfileModal.Sponsor Profile — SponsorProfileModal
When a member clicks a sponsor card, SponsorProfileModal opens (rendered inside NetworkList). It displays:
- Full-size company logo
- Tier badge
- Complete about text
- All links (clickable, open in new tab)
- Resource list for that sponsor (if any resources were uploaded)
Resources Page — /resources
The Resources page (ResourcesPage) is a protected route that aggregates all sponsor-uploaded files into categorized sections. Members can preview any file inline.
API Endpoint
signed_url — a time-limited URL generated by Vercel Blob that allows direct browser access without exposing raw storage credentials.
Resource Preview
Clicking View on any resource opensResourcePreviewModal, which accepts:
File Storage Architecture
Sponsor uploads
Sponsor calls
POST /sponsors/:name/resources with either multipart/form-data (files ≤ 4.5 MB) or a blobUrl from a client-side Vercel Blob upload (files > 4.5 MB). The backend stores metadata (label, URL, MIME type, upload date) in the database.Backend generates signed URLs
When
GET /resources is called, the backend retrieves stored blob URLs from the database and generates short-lived signed URLs via the Vercel Blob SDK before returning them to the client.Member views file
The browser uses the signed URL to fetch the file directly from Vercel Blob storage. No auth token is needed for the storage request itself — security is enforced by the URL’s time-limited signature.
Access Control Summary
| Route | Required Role |
|---|---|
/sponsors-network | Any authenticated user (session && role) |
/resources | Any authenticated user (session && role) |
/sponsor | role.type === 'sponsor' only |
Sponsor Tier System
Sponsors are classified into tiers stored in the database. While the tier values are backend-managed, the frontend renders them with a capitalized display label (e.g.,"gold" → "Gold Sponsor"). Tier affects default sort order in the Sponsors Network page — higher tiers appear first under the default tier-desc sort.
E-board admins can change a sponsor’s tier via: