-
-
This is the dashboard
-
This shows all the deadlines on the dashboard
-
This is the course page
-
This shows the upcoming deadlines on the course page
-
This connects to canvas a feature that will be coming soon on approval by southeastern
-
This shows the drop down of the Course selected Theory of computation CMPS 479
-
This shows a drop down of the selected course Calculus 3
-
this is the support page
-
this is the AI assistance
Inspiration
As college students at Southeastern Louisiana University, we lived this problem firsthand. Campus counseling has weeks-long waitlists, and by the time most students seek help they are already in crisis. We kept asking — why does mental health support only show up after the breakdown? Serene was built to flip that. We wanted a tool that sees the storm coming before it hits.
What it does
Serene is a proactive mental health companion for college students. It pulls a student's academic deadlines, calculates a personalized stress forecast using proximity, academic weight, deadline clustering, and daily mood check-ins, then visualizes that as a 7-day stress bar graph. When stress peaks are detected, Serene surfaces the right support resources automatically from breathing exercises at low stress to campus counseling and crisis lines at high stress. Students can also talk to an AI peer support companion powered by Gemini that opens with context about their actual stress level, not a cold generic greeting.
How we built it
We built Serene using Next.js for the frontend and API routes, Tailwind CSS for styling, and Recharts for the stress bar graph visualization. The AI companion and stress analysis are powered by Google Gemini via the Gemini API. All student data is stored in localStorage for the demo. We split the team across three parallel workstreams — UI and navigation, Gemini integration, and data logic and stress calculation — and merged at two sync checkpoints to minimize conflicts and maximize speed.
Challenges we ran into
Canvas personal access tokens were disabled at our institution, blocking our original API integration plan. We pivoted to a mock data approach with realistic SLU course deadlines that feed directly into the stress algorithm, keeping the demo compelling while preserving the Canvas integration as a production roadmap item. We also had to carefully tune the stress scoring formula — proximity, weight, clustering multiplier, and mood modifier — so the forecast felt meaningful and not arbitrary.
Accomplishments that we're proud of
We are proud of building a fully functional stress forecasting engine from scratch in under 7 hours. The scoring system combining proximity, academic weight, clustering, and mood feels genuinely useful — not just a random number. We are also proud of the Gemini integration being context-aware from the first message, referencing the student's actual stress tier and mood rather than opening cold. The app feels personal, and that was intentional.
What we learned
We learned how to coordinate three parallel Git branches under time pressure without stepping on each other's work. We learned how to design an AI prompt that produces warm, concise, non-clinical responses while still knowing when to escalate to real human resources. And we learned that the most impactful products are not the most complex ones — Serene works because it solves one specific problem extremely well.
What's next for Serene
The immediate next step is real Canvas OAuth integration through university approval, replacing mock data with live assignment feeds. After that — Google Calendar sync for students not on Canvas, a mobile app, push notifications timed to forecast peaks, and university SSO authentication. Long term we want to partner directly with campus counseling centers so Serene can surface real waitlist availability and book appointments in-app.
Built With
- firebase-authentication
- gemini-2.5-flash
- github
- google-auth
- google-gemini-api
- javascript
- localstorage
- next.js
- node.js
- react
- recharts
- tailwind-css
- vercel
Log in or sign up for Devpost to join the conversation.