Spaces:
Sleeping
Sleeping
| /* | |
| * Foresight UI prototype β MOCK DATA | |
| * ----------------------------------- | |
| * EVERYTHING in this file is fake, hand-authored placeholder content that only | |
| * *looks* plausible. There are no real Vanderbilt records here, no API calls, | |
| * no knowledge-base reads. This is the single place to tweak content during a | |
| * design walkthrough ("change this event", "reword this nudge"). | |
| * | |
| * See ../docs/ui-design-plan.md and issue #14 for scope. | |
| */ | |
| const MOCK = { | |
| // ---- The four domains (primary nav + global color system) ---------------- | |
| // Colors are also defined as CSS variables in styles.css; kept here so JS can | |
| // color chips/pins/tiles by domain key. | |
| domains: { | |
| strengths: { | |
| key: "strengths", | |
| name: "My Strengths", | |
| facet: "personal", | |
| color: "#E0A83E", | |
| icon: "β¦", | |
| purpose: "Know what you're great at β and lean on it.", | |
| }, | |
| crew: { | |
| key: "crew", | |
| name: "My Crew", | |
| facet: "social", | |
| color: "#E86A5C", | |
| icon: "β", | |
| purpose: "Find your people. Family counts as crew, too.", | |
| }, | |
| future: { | |
| key: "future", | |
| name: "My Future", | |
| facet: "professional", | |
| color: "#4A6FA5", | |
| icon: "β€", | |
| purpose: "Research, internships, fellowships, careers β one step at a time.", | |
| }, | |
| vu: { | |
| key: "vu", | |
| name: "My VU", | |
| facet: "academic", | |
| color: "#4C9A6E", | |
| icon: "β", | |
| purpose: "The academic side of campus β and who to ask for help.", | |
| }, | |
| }, | |
| // ---- The signed-in student ------------------------------------------------- | |
| // Only the greeting fallback is left. The invented year / major / strengths / | |
| // interests went with the Today rewrite: that screen now reads the real profile | |
| // through GET /api/today, and a second, fictional copy of the same fields is | |
| // exactly how a demo ends up showing someone else's data. | |
| student: { | |
| firstName: "there", // replaced at boot by the signed-in student's real name | |
| }, | |
| // ---- Daily affirmations (display-only; cycles through this repository) ----- | |
| // Per 2026-07-09: non-interactive. Cross-cultural wisdom + positive psychology, | |
| // aimed at negative self-talk. | |
| affirmations: [ | |
| "These resources were built for you. You are allowed to use every one of them.", | |
| "Asking for help is a skill the strongest students practice on purpose.", | |
| "You don't have to have it all figured out today. Just take the next small step.", | |
| "Belonging isn't something you earn here β it's something you already have.", | |
| "The people in these offices *want* to hear from you. That's literally their job.", | |
| "Being the first in your family here means you're building a map others will follow.", | |
| "Progress over perfection. Showing up counts.", | |
| "You bring a perspective this campus needs. Don't shrink it.", | |
| "It's okay to feel out of place and still deserve to be here. Both are true.", | |
| "Small conversations open big doors. Send the email.", | |
| ], | |
| // Today's classes, this week's coursework, the interest feed and the old nudges | |
| // used to live here. They are all real now β see GET /api/today, server/today.py, | |
| // and the `Today` module in app.js. The nudges were not rewired but deleted: two | |
| // of the three were feed items in a different card style, and the third ("you | |
| // haven't been to office hours yet") needed attendance data that does not exist. | |
| // ---- Chat ------------------------------------------------------------------ | |
| // Ask Foresight is real now. The greeting and the starter prompts come from the | |
| // server (GET /api/chat/config) so they can be tuned without a frontend deploy, | |
| // and the canned transcript that used to live here is gone β answers are | |
| // generated from the knowledge base. See app/chat.js and server/agent/. | |
| // ---- Four-domain page content --------------------------------------------- | |
| domainContent: { | |
| strengths: { | |
| blurb: "You lead with Learner and Input β you love figuring things out and gathering knowledge. Here's how to put that to work.", | |
| cards: [ | |
| { h: "Play to your Learner strength", p: "Front-load reading before lectures β you retain more when you preview." }, | |
| { h: "A worry, handled", p: "You rated \"I don't belong in my classes\" fairly high. That feeling is common for first-gen students β and it fades fastest when you speak up once in each class." }, | |
| { h: "Where your strengths shine on campus", p: "Peer tutoring, research labs, and the Writing Studio all reward curiosity." }, | |
| ], | |
| }, | |
| future: { | |
| blurb: "Your future is built one small step at a time. These are the on-ramps.", | |
| cards: [ | |
| { h: "Undergraduate research", p: "Info session tonight, 6:00p. First-years can and do join labs." }, | |
| { h: "Internships (Handshake)", p: "Set up your profile now; recruiting for next summer starts earlier than you'd think." }, | |
| { h: "Fellowships", p: "Awards like the Keegan support research and study. It's never too early to learn the landscape." }, | |
| { h: "Immersion Vanderbilt", p: "The graduation requirement that can become a research or creative project you're proud of." }, | |
| ], | |
| }, | |
| }, | |
| // The grand calendar reads the real knowledge base now β see calendar.js. | |
| // The campus map reads the real buildings + directory knowledge base β see campus.js. | |
| // My VU reads the real schedule, key dates, class search and funding β see vu.js; | |
| // its mock academics block (fake weekly grid + fictional 4-year plan) is gone. | |
| // ---- Prep: communication & writing assistant ----------------------------- | |
| prepScenarios: [ | |
| { | |
| key: "oh-intro", | |
| domain: "vu", | |
| title: "Introduce yourself at office hours", | |
| draft: "Hi Professor Okafor β I'm {first}, from your 9:10 BSCI 1510 section. I wanted to stop by to introduce myself and ask a question about cell membranes from Tuesday's lecture. Is now an okay time?", | |
| tips: ["You don't need a 'big' question β showing up is the point.", "Sit down; it signals you're planning to stay a minute.", "It gets easier the second time."], | |
| }, | |
| { | |
| key: "prof-email", | |
| domain: "future", | |
| title: "Email a professor about research", | |
| draft: "Dear Dr. Ramirez,\n\nI'm a first-year student interested in neuroscience, and I read about your lab's work on memory. I'd love to learn whether there are ways for undergraduates to get involved, even in a small role. Would you be open to a brief conversation?\n\nThank you for your time,\n{first}", | |
| tips: ["Name the specific work β it shows you did your homework.", "Ask for a conversation, not a job.", "One short paragraph is plenty."], | |
| }, | |
| { | |
| key: "fair-followup", | |
| domain: "future", | |
| title: "Follow up after a career fair", | |
| draft: "Hi Sam,\n\nThanks for talking with me at the fair today about the summer analyst role. I enjoyed hearing about your team's projects, and I've attached my rΓ©sumΓ©. I'd welcome any next steps whenever you have a moment.\n\nBest,\n{first}", | |
| tips: ["Send it the same day while they remember you.", "Mention one specific thing you talked about.", "Keep it short and warm."], | |
| }, | |
| { | |
| key: "roommate", | |
| domain: "crew", | |
| title: "Bring up something with a roommate", | |
| draft: "Hey β do you have a few minutes to chat later? I've been meaning to talk about how we split quiet hours for studying, and I'd love to find something that works for both of us.", | |
| tips: ["Lead with 'us,' not 'you.'", "Pick a calm moment, not mid-conflict.", "Propose, don't demand β leave room for their side."], | |
| }, | |
| ], | |
| // ---- My Story: the "treasure trove" carried-forward memory ---------------- | |
| // ---- My Crew is real now β see app/crew.js and GET /api/crew. The invented | |
| // orgs, events, member counts and "syncs from AnchorLink" banner that used to live | |
| // here are gone rather than left lying around, the same way the Today rewrite | |
| // removed its mock feed: a second, fictional copy of data the app now reads for | |
| // real is exactly how a demo ends up showing someone else's campus. | |
| }; | |
| // Expose globally for the plain-JS app. | |
| window.MOCK = MOCK; | |