DreamTracker is a full-stack web application designed to help users capture, reflect on, and explore their dreamsβprivately or communally. By combining personal journaling features with light social integration, DreamTracker empowers users to find meaning in their subconscious experiences and connect with others through shared dream patterns.
Most dream journaling apps focus solely on private reflection. DreamTracker goes further by:
- Making dreams searchable with tags, emotions, and categories
- Allowing optional anonymous sharing to foster connection without oversharing
- Highlighting patterns across a userβs dream history
- Offering a calm, minimal interface optimized for night-time or early-morning logging
- Includes an AI-powered βRewriteβ tool that helps structure dreams written as raw notes or fragmented memories
DreamTracker is built to support introspection and subtle communityβwithout gamification or dopamine traps.
- React (Vite)
- Tailwind CSS
- React Router DOM
- TanStack Query (formerly React Query) for data fetching, caching & synchronization β see GitHub
- React Query DevTools for debugging (enabled in development only)
- ASP.NET Core Web API
- Entity Framework Core
- SQL Server
- Cookie-based authentication using ASP.NET Identity
- Git & GitHub
- Postman for API testing
- Makefile-based dev workflow
- VS Code + Tailwind IntelliSense
- Ollama β Local LLM runtime used to structure unformatted dream notes into narrative form via frontend integration
- User registration & login
- Create, read, update, delete (CRUD) dreams
- Tagging system for themes/emotions
- Personal profile view with dream stats
- Secure API with protected endpoints
- My Dreams vs All Dreams view
- Edit dreams via modal interface
- Light/dark dream mode toggle
- Optional AI rewrite for unstructured dreams using local Ollama LLM
β οΈ Requires Ollama to be installed and running locally with a non-embedding model pulled.
- Dream pattern recognition
- Emotional Timeline
- Calendar view for dream frequency
DreamTracker/
βββ DreamTrackerAPI/ # .NET Core Web API backend
β βββ Controllers/ # Auth, Dream, Category, Tag
β βββ Models/ # EF Core entities & DTOs
β βββ Migrations/ # EF Core schema history
β
βββ DreamTracker-Client/ # React frontend
βββ components/
β βββ auth/ # Login/Register
β βββ dream/ # AllDreams, DreamCard, MyDreams, etc.
β βββ profile/ # Profile.jsx
βββ managers/ # Fetch wrappers (auth, dream, tag, etc.)
This project includes both a .NET backend and a Vite/React frontend. The fastest way to run both is with make serve, which handles everything for you.
Before you begin, ensure the following are installed:
-
.NET 8.0 SDK Verify with:
dotnet --version
The output should start with
8.β if not, download it here. -
EF Core CLI (
dotnet-ef)βΉοΈ You do not need to install this manually β the
Makefilewill install it automatically if it's missing. -
Ollama (Optional) Required for the "Rewrite with AI" feature during dream creation. You must have Ollama installed and at least one non-embedding model pulled.
π The application automatically uses the most recently pulled usable model.
git clone https://github.com/soyuz43/DreamTracker.git
cd DreamTrackerThe application expects a PostgreSQL connection string stored in user secrets under the key DreamTrackerDbConnectionString.
Set it using:
dotnet user-secrets init
dotnet user-secrets set "DreamTrackerDbConnectionString" "Host=localhost;Port=5432;Username=postgres;Password=yourpassword;Database=DreamTracker"You can set local passwords for the seeded admin and user accounts using the .NET Secret Manager:
cd DreamTrackerAPI
dotnet user-secrets init
dotnet user-secrets set "AdminPassword" "<your_admin_password>"
dotnet user-secrets set "UserPassword" "<your_user_password>"These credentials will be injected at runtime when the app seeds the database.
Default users created on startup:
| Role | Password (if unset) | |
|---|---|---|
| Admin | admina@strator.comx | DefaultAdminPassword |
| User | lucy@dream.com | DefaultUserPassword |
.NET user-secretscomes with the SDK β no install required.
make serveThis command will:
- Check for and install backend dependencies (
dotnet ef) - Ensure
dotnet-efis installed globally - Runs the latest migrations and seed the database
- Check for and install frontend dependencies (
npm install) - Launch the backend with HTTPS (
dotnet watch run) - Wait eight seconds
- Start the frontend dev server
Once itβs ready:
- Frontend: http://localhost:5173
- Backend API: https://localhost:5001
You can run the backend and frontend separately if you prefer β see below.
cd DreamTrackerAPI
dotnet ef database update
dotnet run --launch-profile httpsLaunching with
--launch-profile httpsensures Swagger UI and HTTPS endpoints work correctly.
cd DreamTracker-Client
npm install
npm run devWarning: This will delete all data and migrations. Use only in a dev environment.
Before you begin, ensure you have psql in your PATH (required for dropping the DB) and that your connection string is configured:
cd DreamTrackerAPI
dotnet user-secrets set "DreamTrackerDbConnectionString" "Host=localhost;Port=5432;Username=postgres;Password=your_password;Database=DreamTracker"Then run:
make migrationsThis will:
- Remove all EF Core migration files
- Drop the
DreamTrackerPostgreSQL database - Recreate the initial migration and apply it, rebuilding the schema and seed data
DreamTracker is a capstone project by William Stetar, built to explore the intersection of introspection, mental health, and digital design. It reflects a deep interest in how technology can serveβnot distractβits users.
This project is licensed under the MIT License. Feel free to use, fork, or contribute.
βA dream that is not understood remains a mere occurrence; a dream understood is a part of life.β β Carl Jung