SurajC.

Figuring Things Out

Back
AlmaBond app icon

AlmaBond

Personal Project

campus life, together

A campus hub for clubs, events, elections and alumni. Students join orgs, register for events and vote, club leaders send requests to Student Life, and alumni stay connected through a directory, mentorship rounds and a community feed.

Next.jsReactTypeScriptTailwind CSSSupabasePostgreSQLVercelCloudflare R2CapacitorRedis
AlmaBond: campus life, together

The story

When I joined St. Joseph's University, my initial plan was to just focus on my studies, get an internship, and then ultimately to get a job and move on. It was never to be active on campus.

However, during my second semester, I found out about mentorship program that our alumni engagement office does, I took part in it, and was paired with Kevin Deutsch, currently the Chief Growth Officer at Softheon.

The weekly meetings with him was one of the most pivotal parts of my life here in the US.

Among the many things he encouraged me to do was being active on campus. So I decided to run for the President of the Computer Club. Then I got a tutoring job at the Academic Center to teach Mathematics & Computer Science to other students. Then I became the President of the Research Club. Now, I also work at the Career Office.

But all of this started with one mentorship session through the Career Office. But most people don't know about SJNY Connect (the platform) our university uses for alumni engagement, despite them trying a lot to promote it.

This results in them not being able to take advantage of one of the most powerful resources any university has: access to alumni.

But what if we had one platform for everything?

Where you could see every club and every office, every event, every election, every request and a real alumni network, tied to the school accounts people already have.

The problem

Campus life at St. Joseph's University, New York (where I study) is pretty scattered. There's one portal for events and clubs, another portal for forms and elections, email attached Excel sheets for budget, another portal to connect with alumni, and yet another to get access to the resources our university has.

Because there are so many portals, most people are unable to take advantage of most of theses resources.

The idea

AlmaBond is one place for all of it: every club and office, every event, every election, every request and a real alumni network, tied to the school accounts people already have. It was built for St. Joseph's University, New York across its Brooklyn and Long Island campuses, and designed from the first day to host more than one campus, and more than one university, each with its own branding, offices and rules.

The product is also the process: when a club submits an event request, the right office sees it, decides it and the club is told, instead of the answer arriving in someone's inbox weeks later.

On iPhone

AlmaBond home: next up, events you are going to, happening soon
All on-campus events with search, calendar and registration
A student asking an alum for career advice in a message thread
Browse every club and office on campus

Screens use made-up demo accounts and data. The same app runs on Android and in the browser.

On the web

AlmaBond home page on desktop
AlmaBond sign-in page for St. Joseph's University on desktop

The public front door, the generic home page and a campus's own page. Everything past sign-in is private.

For students

  • Browse every club and office on campus, join in a tap, and see what each one is up to.
  • Find events, register, add them to your calendar (or subscribe to a calendar feed) and check in when you get there.
  • Vote in club elections, and answer surveys and award ballots from the offices that run them.
  • Message other students, club teams and alumni, one to one or in groups.

For club leaders and offices

  • Send event and budget requests to Student Life and SGA, and follow every decision, note and resubmission.
  • Run e-board elections, email members, build forms and send broadcasts, each gated by what the office is allowed to do.
  • Offices get exactly the permissions Student Life gives them: reviewing events, reviewing budgets, creating clubs, sending email.
  • Admins can look at the site as a student or an office would, to see what people see.

For alumni

  • A directory searchable by class, campus, industry and what people can help with.
  • Mentorship rounds: open alumni are matched with students each semester, and the alumni office approves every match.
  • A community feed, resources and events, so people stay part of the university after graduation.
  • Alumni ask to join with their graduation details, and the alumni office checks every request.

Under the hood

  • One codebase, three places to use it. The website is a Next.js app (App Router, React, TypeScript, Tailwind). The iPhone and Android apps are a Capacitor shell around the same site, with native push notifications, camera access and deep links, so every fix ships to all of them at once.
  • Permissions are the product. Students, e-board members, office staff, Student Life, the alumni office and platform admins all see and can do different things, per campus. Every API route checks who is asking, every write is rate limited, and a test fails the build if a new route forgets either.
  • Private to the university. Sign in with a school Google account, LinkedIn for alumni, or a passkey, with authenticator-app two-factor on top. Sessions live in HttpOnly cookies, human checks guard the open forms, and request limits are shared across servers through Redis with a database fallback.
  • Chat that behaves like a chat app. Direct and group messages with replies, reactions, mentions and read receipts; photos, GIFs, videos and files; and push notifications on iPhone and Android that are skipped when you already have the conversation open.
  • Files without the bill. Uploads go straight from the browser to Cloudflare R2. Every picture is saved in a few sizes when it is uploaded, so nothing is resized on request and showing a photo costs nothing extra. Private files are only ever handed out through short-lived signed links.
  • Built to keep running. Every change runs type checks, lint and a few hundred tests, then a smoke test against the live site after each deploy. Errors go to Sentry, the health check watches the database, and the database sits in the same region as the servers after an early slowdown taught me where the time was going.

What I learned

The hard part was never the screens, it was the rules. Who may see this club? Who may approve that budget? What should an office that can email members but not review events be shown? Writing those down as permissions, and testing them, mattered more than any feature.

Going live with real students taught the rest: a database in the wrong region made every page feel slow until it moved next to the servers; a sign-in that looks obvious to its builder confused people who typed their university password into the wrong box; and notifications are only as good as the cases you test on real phones, with the app open, in the background and closed. Each of those became a fix, a test or a line in the release notes.

Where it is now

AlmaBond is live for students and alumni at almabond.com, and is being rolled out campus by campus. Everything is private to the university: you sign in with your school account, and the alumni office approves who joins the alumni community.