A beautiful, dark-themed wellness journaling app with AI-powered mood analysis and personalized suggestions.
- Dark Theme: Beautiful dark UI optimized for comfortable writing
- Responsive Design: Works perfectly on desktop, tablet, and mobile devices
- Real-time Dashboard: Live mood tracking, AI suggestions, and wellness metrics
- Journal Interface: Clean, distraction-free writing experience with word count
- Characters & Achievements: Gamified wellness tracking with progress indicators
- AI-Powered Analysis: Sentiment analysis using TextBlob and Mistral AI
- JSON Storage: Simple file-based data storage (no database required)
- Mood Tracking: Automatic mood detection from journal entries
- Wellness Metrics: Daily/weekly/monthly wellness scoring and insights
- RESTful API: Clean API endpoints for all functionality
- Node.js 20.19+ or 22.12+
- Python 3.8+
- Mistral AI API key (optional - app works with fallback suggestions)
-
Navigate to backend directory
cd backend
-
Run setup script
python setup_backend.py
-
Add your Mistral API key (Optional)
# Edit .env file MISTRAL_API_KEY=your_mistral_api_key_here
Get your API key from: https://console.mistral.ai/
-
Start the backend server
python app.py
Backend will be available at
http://localhost:5000
-
Navigate to frontend directory
cd frontend
-
Install dependencies
npm install
-
Start the development server
npm run dev
Frontend will be available at
http://localhost:5173
(or next available port)
Soul-Link/
βββ backend/
β βββ app.py # Flask API server
β βββ requirements.txt # Python dependencies
β βββ setup_backend.py # Automated setup script
β βββ .env # Environment variables
β βββ .env.example # Environment template
β βββ data/ # JSON data storage
β βββ session_*.json # User session data
βββ frontend/
β βββ src/
β β βββ components/ # React components
β β β βββ Navbar.jsx
β β β βββ comp-styles/ # Component stylesheets
β β βββ pages/ # Page components
β β β βββ Landing.jsx # Homepage
β β β βββ dashboard.jsx # Main dashboard
β β β βββ Journal.jsx # Journal writing page
β β β βββ Preferences.jsx
β β β βββ page-styles/ # Page stylesheets
β β βββ assets/ # Images and icons
β β βββ App.jsx # Main app component
β β βββ main.jsx # Entry point
β βββ package.json
β βββ vite.config.js
βββ README.md
GET /api/health
POST /api/journal # Save journal entry
GET /api/journals # Get journal entries
GET /api/dashboard/mood # Get today's mood
GET /api/dashboard/suggestions # Get AI suggestions
GET /api/dashboard/wellness # Get wellness metrics
GET /api/sessions # List all sessions
GET /api/session/{id} # Get specific session data
- Consistent dark color scheme across all components
- High contrast text for accessibility
- Smooth transitions and hover effects
- Eye-friendly color palette for extended use
- Desktop: Full dashboard layout with side navigation
- Tablet: Optimized card layouts with collapsible elements
- Mobile: Stack layout with touch-friendly controls
- Breakpoints: 1200px, 768px, 480px, 360px
- Mood Tracker: Real-time sentiment analysis display
- AI Suggestions: Personalized recommendations
- Wellness Metrics: Progress tracking and insights
- Quick Stats: Journal count, streak tracking
- Characters: Motivational wellness companions
- TextBlob: Local sentiment analysis for mood detection
- Real-time: Instant mood classification from journal text
- Categories: Happy, Calm, Sad, Stressed, Neutral
- Personalized: Context-aware wellness recommendations
- Fallback: Rule-based suggestions when API unavailable
- Categories: Mindfulness, Self-care, Productivity, Wellness
{
"session_id": "unique_identifier",
"user_id": "user_identifier",
"created_at": "2024-01-01T00:00:00",
"updated_at": "2024-01-01T12:00:00",
"journals": [
{
"id": 1,
"content": "Today was a great day...",
"sentiment_score": 0.8,
"sentiment_label": "positive",
"mood": "happy",
"created_at": "2024-01-01T12:00:00"
}
],
"ai_interactions": [...],
"wellness_metrics": {...}
}
- Flask: Web framework and API
- Flask-CORS: Cross-origin resource sharing
- TextBlob: Natural language processing
- requests: HTTP client for API calls
- python-dotenv: Environment variable management
- React: UI framework
- React Router: Client-side routing
- Vite: Build tool and development server
Backend:
# Install dependencies
pip install -r requirements.txt
# Run in development mode
python app.py
# Test API endpoints
python -c "from app import app; print('β
Backend imports successfully')"
Frontend:
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview
- Touch-optimized navigation
- Stackable card layouts
- Large tap targets
- Optimized text sizes
- Swipe-friendly interactions
- Two-column layouts
- Collapsible sidebar
- Hover states for enhanced interaction
- Medium-density information display
- Full dashboard layout
- Side navigation
- Multi-column content
- Rich hover interactions
- High information density
- Local Storage: All data stored locally in JSON files
- No External Database: No cloud storage or external dependencies
- Session-based: Data organized by session for privacy
- API Key Safety: Environment variables for sensitive data
- Use production WSGI server (e.g., Gunicorn) instead of Flask dev server
- Configure proper CORS policies
- Set up proper logging
- Use environment-specific configuration
- Consider containerization with Docker
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is open source. Feel free to use, modify, and distribute according to your needs.
For issues or questions:
- Check the console for error messages
- Verify both frontend and backend are running
- Ensure all dependencies are installed
- Check API connectivity between frontend and backend
Happy Journaling! π
Soulink is an empathetic, AI-powered journaling app that helps people reflect on their emotions, track mental wellness, and discover personalized strategies β all in a fun and gamified way.
- Daily Diary with Emotion Detection β Write your thoughts and let AI detect your mood and suggest solutions if required.
- Mental Wellness Insights β Track emotional trends over time with visuals.
- Character Companions β Interact with fun avatars and personalities to make journaling engaging with your real life characters.
- AI-Generated Nicknames & Tags β Reflect your unique identity with creative nicknames for yourself and your friends.
- Gamified Dashboard β Earn streaks, badges, and rewards for consistent journaling.
- Lumos AI - Your Personal AI therapist helps you with mental health concerns (if any exists).
- Frontend: React.js, Vite, CSS
- Routing: React Router DOM
- State & Storage: LocalStorage
- AI & NLP: Google Generative AI API / OpenAI GPT APIs
- Charts & Visualization: Chart.js
- Voice Input: Web Speech API
- Hosting: Vercel
- User writes a diary entry (text/voice).
- AI analyzes the entry, detects emotions, and generates strategies.
- Mood + diary are stored securely in LocalStorage (no external DB).
- Dashboard visualizes emotional trends, streaks, and gamified stats.
- Avatars & nicknames personalize the experience.
git clone https://github.com/your-username/Soulink.git
cd Soulink
OPENAI_API_KEY=your_api_key_here
cd frontend
npm install
npm run dev
cd backend
pip install -r requirements.txt
uvicorn app:app --reload
@Arji Jethin Naga Sai Eswar Status: Dead
@Aluru Bala Karthikeya - Nothing beats a Jet 2 holiday
@Vedeshwari Nakate aka The Einstien
@Ayush Singh The Nigga