Project Info
Athena
Overview
Athena is an AI-powered real-time interview assistant designed to provide students with the tools they need to excel in job interviews. It was inspired by the challenges faced by many students, especially those without access to professional networks or resources. The platform offers comprehensive support, including mock interviews and personalized feedback, helping users build confidence in their job search. Athena also analyzes sentiments and tone of voice during the interview to assess and improve confidence, ensuring a well-rounded preparation experience.
Getting Started
Prerequisites
To run Athena, you will need API keys for:
Setup Instructions
-
Create Hume.ai Athena configuration:
ec2c386a-9e3a-43fe-94b6-f3265e30cffb -
Create a
.envfile in the root directory and add your Hume.ai, Firebase, and Google Auth API keys. -
Install development server:
npm install
- Start development server:
npm run dev
Analysis
View
Metric
- 15
- 10
- 7
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- FirebaseIn code
- JavaScriptIn code
- LangChainIn code
- Next.jsIn code
- OpenAIIn code
- ReactIn code
- SQLIn code
- SupabaseIn code
- Tailwind CSSIn code
- TypeScriptIn code
11 of 11 appear in the indexed code.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
163 KB
Source files
62
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
sreyaraya/athena
113 files · 6.7 MB · @ 4e69a59
Structure
Interface
33 files · 29%Screens, components and styles rendered to the user.
+5 moreAPI & routing
14 files · 12%Request entry points: routes, handlers and controllers.
Application logic
19 files · 17%Domain rules, services and shared utilities.
Data & schema
3 files · 3%Schema definitions, migrations and data access.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- TypeScript81%
- JavaScript15%
- Markdown2%
- SQL1%
- CSS0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
package.json
npm · 65- @djthoms/pretty-checkbox
- @emotion/react
- @emotion/styled
- @headlessui/react
- @headlessui/tailwindcss
- @humeai/voice-react
- @internationalized/date
- @mui/material
- @mui/x-charts
- @next-auth/prisma-adapter
- @next-auth/supabase-adapter
- @next/font
- @octokit/core
- @prisma/client
- @radix-ui/react-popover
- @radix-ui/react-slot
- @radix-ui/react-toggle
- @react-aria/datepicker
- +47 more
functions/package.json
npm · 5- firebase-admin
- firebase-functions
- +3 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
Feature verification
Confidence meter / score displayed to userVerified
personalized feedback... to assess and improve confidence
Claimed on readmehigh confidencecomponents/Chat.tsx:209— A Gauge component renders a live 'Confidence Meter' computed from the prosody-derived conf value
Filler word detectionVerified
tools to build confidence and improve interview performance (filler word tracking)
Claimed on readmehigh confidencecomponents/Chat.tsx:98— Splits transcript text and counts occurrences of a filler word set (um, uh, like, etc.), displayed as '# of filler words'
Google OAuth sign-inVerified
Google OAuth listed as a required credential / sign-in mechanism
Claimed on readmehigh confidencepages/api/auth/[...nextauth].js:28— NextAuth is configured with GoogleProvider using GOOGLE_CLIENT_ID/SECRETapp/auth/page.tsx:78— Sign-in page calls signIn('google') on button click
Per-interaction data persisted to Firebase FirestoreVerified
Firebase-backed storage of interview session data supporting feedback/history
Claimed on Devposthigh confidencecomponents/Messages.tsx:45— addDoc(collection(db,'questions'), data) persists each message with email, text, interview number, and prosody analysis scores
Real-time AI mock interview via Hume voice/emotion APIVerified
AI-powered real-time interview assistant that conducts mock interviews
Claimed on readmehigh confidenceapp/interview/page.tsx:8— fetchAccessToken from hume package is called with HUME_API_KEY/HUME_SECRET_KEY and passed to the client componentcomponents/Chat.tsx:174— VoiceProvider from @humeai/voice-react is used with the access token and configId, wired to Messages/Controls/StartCall for a live voice interview
Sentiment/tone-of-voice analysis during interviewVerified
Athena analyzes sentiments and tone of voice during the interview to assess and improve confidence
Claimed on readmehigh confidencecomponents/Chat.tsx:76— gotData reads newMessageObject.models.prosody.scores from Hume's prosody model and derives a confidence value and top emotionscomponents/Messages.tsx:87— msg.models.prosody?.scores is captured per message and stored as 'values' for each interaction
Personalized post-interview performance dashboard with analytics and feedbackCode-supported
comprehensive support ... personalized feedback, helping users build confidence, ensuring a well-rounded preparation experience
Claimed on readmemedium confidenceapp/performance/page.tsx:26— Fetches real Firestore data via getSessionInfo, but the query hardcodes email 'saarnav@berkeley.edu' and interview 1 instead of using the signed-in userapp/performance/page.tsx:73— chartData is overwritten immediately after fetch with hardcoded placeholder arrays (e.g. [1,3,5,7,9,11]), so the line chart does not actually reflect fetched dataapp/performance/page.tsx:136— 'Overall Feedback' text is a static hardcoded string, not generated from the interview data
Resume upload / analysis featureCode-supported
resume support as part of interview preparation tooling (app/resume page)
Claimed on readmelow confidenceapp/resume/page.tsx:14— Drag-and-drop file uploader calls a Scrape() function on drop, but only logs file metadata; no visible parsing/analysis of resume content is wired to feedback
Multiple named interview projects / history per user (dashboard of past interviews)Claimed only
students build confidence in their job search via multiple mock interview sessions
Claimed on readmemedium confidence
An AI agent derived these features from the project’s Devpost page and readme, then searched the code for each one. Verified features are backed by cited code; claimed-only features had no supporting code, which is not by itself proof a feature is missing.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.