StableMind is a mental health companion designed to support students navigating the pressures of placement season. It provides a safe space for students to manage stress, set goals, and connect with peers while offering AI-driven support and personalized wellness tools.
- AI Chatbot Support: 24/7 empathetic listening and support with advanced crisis detection and emotion-based wellness tool suggestions. Powered by Google Gemini.
- Crisis Detection: Intelligent system that detects distress signals in chat and provides immediate helpline information and resources.
- Emotion Recognition: Analyzes chat interactions to suggest relevant wellness tools (e.g., breathing exercises for anxiety, journaling for loneliness).
- Daily Goals: Set achievable goals and track your placement preparation progress to stay motivated.
- Mindful Moments: Access guided meditation and stress-relief techniques tailored for students.
- Peer Support: Connect with a community of peers who understand the unique challenges of the placement journey.
- Affirmations: Receive daily motivational quotes and articles to maintain a positive mindset.
- Mood Tracker: Monitor your mental wellbeing over time to identify patterns and triggers.
- Document Upload: Securely upload resumes and other materials for personalized placement advice.
- Frontend: Next.js 15.5.12 (App Router), React, Tailwind CSS
- Backend & Database: Supabase (PostgreSQL, Auth integration)
- Authentication: Clerk
- AI Integration: Google Gemini API
- Styling: Tailwind CSS with custom animations
Follow these steps to set up and run the project locally.
- Node.js (v18 or later)
- npm or yarn or pnpm
- A Supabase account
- A Clerk account
- A Google Cloud project with Gemini API access
-
Clone the repository:
git clone https://github.com/your-username/stablemind.git cd stablemind -
Install dependencies:
npm install # or yarn install # or pnpm install
-
Set up Environment Variables:
Create a
.env.localfile in the root directory and add the following variables:# Clerk Authentication NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key CLERK_SECRET_KEY=your_clerk_secret_key NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/dashboard NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/dashboard # Supabase NEXT_PUBLIC_SUPABASE_URL=your_supabase_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key # Google Gemini AI GEMINI_API_KEY=your_gemini_api_key
-
Set up the Database:
- Go to your Supabase project dashboard.
- Navigate to the SQL Editor.
- Run the contents of
supabase-schema.sqlto set up the main tables. - Run the contents of
supabase-peer-support.sqlto set up tables for peer support features.
-
Run the Development Server:
npm run dev # or yarn dev # or pnpm dev
app/: Main application source code (Next.js App Router).app/api/: API routes for chat and other backend logic.app/components/: Reusable UI components.app/context/: React Context providers (Chat, Theme).app/services/: Services for AI, crisis detection, and emotion detection.app/dashboard/: Dashboard page and layout.
public/: Static assets.supabase-*.sql: SQL scripts for database setup.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request