Mynd is an AI-powered journaling app that analyzes your entries to provide unique, data-driven insights into your emotional state. By pinpointing your mood, sentiments, and emotions at the time of writing, Mynd helps you track your emotional journey over time with mood tracking charts and visualizations. Identify patterns in your feelings and discover what triggers different emotions, enhancing your self-understanding and personal growth.
- AI-Powered Emotional Analysis: Mynd employs Groq AI to delve into your journal entries, uncovering emotions and sentiments, providing insightful data on your mood at the moment of writing.
- Visualise Emotional Trends: With Langchain, track and visualise your emotional journey over time, spotting patterns and triggers for various emotions through interactive charts.
- Personalised Growth Insights: Receive tailored recommendations for well-being based on AI-analyzed emotional patterns, guiding you towards balanced living.
- Secure & Confidential: Clerk ensures secure login, while end-to-end encryption safeguards your journal entries, maintaining privacy.
- Responsive Design Across Devices: Crafted with Next.js and TypeScript, enjoy a seamless experience on any device, enhanced by Vector Database for smart semantic searches.
-
Clone the Repository:
git clone https://github.com/devansh1401/Mynd cd Mynd
-
Install Dependencies:
npm install # or yarn install
-
Database Setup:
- Prisma: The project uses Prisma as the ORM. You'll need to have a database compatible with Prisma (e.g., PostgreSQL, MySQL, SQLite). Preferably, use Planetscale or NeonDB.
-
Environment Variables:
- Fill in the
.env
file with your actual configuration details, including:- Database connection URL (
DATABASE_URL
for Prisma). - Clerk API keys (
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY
,CLERK_SECRET_KEY
for Clerk authentication). - Groq API key (
GROQ_API_KEY
for AI analysis). - Google API key (
GOOGLE_API_KEY
for Google Generative AI Embeddings).
- Database connection URL (
- Fill in the
-
Clerk Configuration:
- Sign up for Clerk and create a new application to get your Clerk keys.
- Configure Clerk in your
.env
file with the keys obtained.
-
External Services:
- Groq: Obtain an API key for Groq and set it in your
.env
file. You can get your Groq API key here. - Google Generative AI Embeddings: Ensure you have access and set the API key in
.env
. For Gemini API key, refer to this YouTube video.
- Groq: Obtain an API key for Groq and set it in your
-
Run the Development Server:
npm run dev # or yarn dev
-
The application will open in your default web browser. If not, you can access it by navigating to the URL provided in the terminal output.
- If the project uses other external services or APIs, ensure you have the necessary keys and configurations set in
.env
.
This setup assumes you have basic knowledge of the workflow of Next.js, npm/yarn, and database management. Adjustments may be needed based on your specific development environment and the external services you're using.
The Mynd project architecture involves multiple components and services, as depicted in the following diagram:
The Mynd project utilizes a streamlined set of technologies to deliver an AI-powered journaling experience:
- Next.js: Server-rendered React applications.
- React: UI library for building user interfaces.
- Tailwind CSS: Utility-first CSS framework for styling.
- React Autosave: Automatic form data saving.
- Langchain & Groq: AI analysis of text for insights.
- Google Generative AI Embeddings: Semantic understanding of text.
- Zod: Validation for structured outputs.
- Prisma Client: ORM for database access.
- Vercel: Deploying Next.js applications.
- Clerk: Secure user authentication.
- Groq: AI service for text analysis.
- Google Generative AI Embeddings: Enhances AI analysis.
Mynd values contributions from the community! We welcome bug reports, feature suggestions, code improvements, assistance with testing new features, and help in maintaining up-to-date documentation. To contribute, simply fork the repository, create an issue for bug reports or feature suggestions, submit pull requests for code improvements, or provide feedback through testing and documentation edits. Thank you for helping us make Mynd even better!