Project Info
Inspiration
You know when.. you know you are going to forget something. Yea dont. Use Nina. Narrate said thought into a savable audio. Parse through it like a library afterwards.
What it does
We help people not forget things. We help people not worry about memorizing things. We help people get over the fear of missed opportunity. Just narrate your thought, we store it. Pick them up whenever you want. DB of thoughts
How we built it
Expo (React Native) for the iOS app frontend FastAPI for the backend Groq API for the speech-to-text transcription and analyzing stored thoughts to find the most relevant ones to a user's query Local SQLite database to store and retrieve thoughts ##
Challenges we ran into
Parsing Groq's responses: the model's output was often unpredictable and inconsistent, making it difficult to enforce a reliable message structure even with clear formatting instructions Implementing effective search: we spent significant time experimenting with ChromaDB's similarity search to find relevant "thoughts" from a database, but couldn't achieve good accuracy. Eventually we settled with using Groq to scan all stored thoughts, which works but can introduce hallucinations as the database of thoughts grows Debugging app behavior: with multiple asynchronous components interacting, diagnosing where issues originated was challenging ##
Accomplishments we're proud of
A few areas where Nina innovates is its UI accessibility and search framework. With future goals of integrating across Apple’s ecosystem, Nina aims to be one click away from the closest device listening to the user’s voice. The minimalist design makes users feel productive, lack of button further emphasizing the core function of recording thoughts. For the search framework, we chose Groq because it's uniquely optimized for real-time speech-to-text and search that use both keywords and context workflows. Its low-latency voice API lets us transcribe audio with almost no delay; crucial for creating a frictionless, live-search experience.
What we learned
How to use and integrate Groq API into our project The importance of clear communication and coordination in a team How to estimate task complexity and deadlines more realistically ##
What's next
Optimize the "Search Your Thoughts" feature with ChromaDB's similarity search to improve relevance and reduce hallucinations as the number of stored thoughts grows Add capabilities for Nina to perform actions, such as writing emails or booking dinners directly through user commands, which will expand Nina into a true personal assistant that can not only remember and understand your thoughts but also take actions on your behalf
NINA-AI
Your Thoughts in a Database
Built with the tools and technologies:
Table of Contents
Overview
nina-ai is an all-in-one developer toolkit designed to accelerate the creation of cross-platform, AI-powered applications. It was built for the Groq AI track at Cal Hacks 2025. Combining a React Native and Expo-based frontend with a robust FastAPI backend, it enables seamless development across Android, iOS, and web platforms.
Why nina-ai?
This project empowers developers to build engaging, voice-enabled apps with ease. The core features include:
- 🧩 Puzzle Piece: Modular architecture with reusable components and hooks for rapid customization
- 🎨 Palette: Theme-aware UI components that adapt seamlessly to light and dark modes
- 🎯 Target: Cross-platform support ensuring consistent experiences on mobile and web
- 🚀 Rocket: Integrated backend APIs for speech transcription, TTS, and content metadata extraction
- 🔧 Wrench: Developer-friendly setup with configuration files and project reset scripts
- 🔍 Magnifying Glass: Powerful search and content management capabilities
🧠 Retrieval-Augmented Intelligence
Nina-AI is built on a Retrieval-Augmented Generation (RAG) pipeline that gives your thoughts structure and memory. Every voice note you record is transcribed, semantically embedded, and stored in a searchable database. When you ask a question or recall an idea, Nina-AI retrieves the most relevant notes and feeds them into an LLM to generate context-aware responses.
This RAG-driven design transforms Nina-AI into a personal knowledge assistant — capable of reasoning over your past recordings, summarizing key moments, and helping you rediscover insights you’ve already expressed.
Getting Started
Prerequisites
This project requires the following dependencies:
- Programming Language: TypeScript
- Package Manager: Npm, Pip
Installation
Build nina-ai from the source and install dependencies:
-
Clone the repository:
❯ git clone https://github.com/AndyG6/nina-ai -
Navigate to the project directory:
❯ cd nina-ai -
Install the dependencies:
Using npm:
❯ npm install
Using pip:
❯ pip install -r backend/requirements.txt
Usage
Run the project with:
Using npm:
npm start
Using pip:
python {entrypoint}
Testing
Nina-ai uses the {test_framework} test framework. Run the test suite with:
Using npm:
npm test
Using pip:
pytest
Analysis
View
Metric
- 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
- FastAPIIn code
- JavaScriptIn code
- PythonIn code
- ReactIn code
- TypeScriptIn code
5 of 5 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
82 KB
Source files
37
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
AndyG6/nina-ai
57 files · 1.6 MB · @ 8c14925
Structure
Interface
29 files · 51%Screens, components and styles rendered to the user.
Application logic
6 files · 11%Domain rules, services and shared utilities.
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
- TypeScript50%
- Python39%
- Markdown6%
- JavaScript5%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
package.json
npm · 41- @daily-co/react-native-daily-js
- @daily-co/react-native-webrtc
- @expo/vector-icons
- @react-native-async-storage/async-storage
- @react-navigation/bottom-tabs
- @react-navigation/elements
- @react-navigation/native
- @vapi-ai/react-native
- expo
- expo-av
- expo-blur
- expo-constants
- expo-file-system
- expo-font
- expo-haptics
- expo-image
- expo-linear-gradient
- expo-linking
- +23 more
backend/requirements.txt
pypi · 8- fastapi
- httpx
- pydantic
- pydantic-settings
- python-dotenv
- python-multipart
- SQLAlchemy
- uvicorn[standard]
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.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.