HabitForge is a habit‑building app that helps people turn a simple intention into a clear, day‑by‑day action plan. It generates structured routines with specific daily tasks, keeps progress visible through streaks and completion tracking, and encourages consistency with personalized guidance.
TypeScript
0
17 commits
updated Feb 21, 2026
backend/ — ASP.NET Core (.NET 9) APIfrontend/ — React + Vite UIThe backend host project is backend/AuthAPI/AuthAPI.Presentation.csproj.
It serves both Auth endpoints and Habit endpoints (Habit controllers are loaded via AddApplicationPart(...)).
From repo root:
docker compose up -d
Databases:
UserDb (Auth)HabitDb (Habits)Install .NET 9 SDK (required for this backend):
brew install --cask dotnet-sdk9
Then restore local tools from backend/.config/dotnet-tools.json:
cd backend
dotnet tool restore
Create backend/AuthAPI/.env and edit values:
JWT__SecretKey (min 32 chars)Email__*, GoogleKeys__*, HuggingFace__*, LogoStorage__*You can start from backend/AuthAPI/.env.example.
Run these from backend/:
dotnet ef database update --project ./AuthAPI.Infrastructure/AuthAPI.Infrastructure.csproj --startup-project ./AuthAPI/AuthAPI.Presentation.csproj --context UserDbContext
dotnet ef database update --project ./Habit.Infrastructure/Habit.Infrastructure.csproj --startup-project ./AuthAPI/AuthAPI.Presentation.csproj --context HabitDbContext
From backend/:
dotnet run --project ./AuthAPI/AuthAPI.Presentation.csproj --launch-profile https
Expected URLs (from launchSettings.json):
https://localhost:7145http://localhost:5106From frontend/:
npm install
npm run dev
Frontend dev server:
http://localhost:5174Vite proxies API calls:
/api/* → https://localhost:7145 (see frontend/vite.config.ts)npm run dev — start dev server (port 5174)npm run build — build to frontend/distnpm run preview — preview build (port 4173)dotnet build backend/AuthAPI/AuthAPI.Presentation.csprojdotnet ef migrations add NAME_HERE --project ./AuthAPI.Infrastructure/AuthAPI.Infrastructure.csproj --startup-project ./AuthAPI/AuthAPI.Presentation.csproj --context UserDbContext --output-dir Migrations
dotnet ef migrations add NAME_HERE --project ./Habit.Infrastructure/Habit.Infrastructure.csproj --startup-project ./AuthAPI/AuthAPI.Presentation.csproj --context HabitDbContext --output-dir Migrations
ECONNREFUSED: backend not running on https://localhost:7145 or wrong port.localStorage (frontend uses axios interceptor in frontend/src/shared/lib/axios.ts).docker ps) and port 5433 is free.docker compose down -v
See backend/DockerConfig.md for Postgres + connection string details.
TypeScript
64.6%
C#
34.0%
HabitForge is a habit‑building app that helps people turn a simple intention into a clear, day‑by‑day action plan. It generates structured routines with specific daily tasks, keeps progress visible through streaks and completion tracking, and encourages consistency with personalized guidance.
TypeScript
0
17 commits
updated Feb 21, 2026
backend/ — ASP.NET Core (.NET 9) APIfrontend/ — React + Vite UIThe backend host project is backend/AuthAPI/AuthAPI.Presentation.csproj.
It serves both Auth endpoints and Habit endpoints (Habit controllers are loaded via AddApplicationPart(...)).
From repo root:
docker compose up -d
Databases:
UserDb (Auth)HabitDb (Habits)Install .NET 9 SDK (required for this backend):
brew install --cask dotnet-sdk9
Then restore local tools from backend/.config/dotnet-tools.json:
cd backend
dotnet tool restore
Create backend/AuthAPI/.env and edit values:
JWT__SecretKey (min 32 chars)Email__*, GoogleKeys__*, HuggingFace__*, LogoStorage__*You can start from backend/AuthAPI/.env.example.
Run these from backend/:
dotnet ef database update --project ./AuthAPI.Infrastructure/AuthAPI.Infrastructure.csproj --startup-project ./AuthAPI/AuthAPI.Presentation.csproj --context UserDbContext
dotnet ef database update --project ./Habit.Infrastructure/Habit.Infrastructure.csproj --startup-project ./AuthAPI/AuthAPI.Presentation.csproj --context HabitDbContext
From backend/:
dotnet run --project ./AuthAPI/AuthAPI.Presentation.csproj --launch-profile https
Expected URLs (from launchSettings.json):
https://localhost:7145http://localhost:5106From frontend/:
npm install
npm run dev
Frontend dev server:
http://localhost:5174Vite proxies API calls:
/api/* → https://localhost:7145 (see frontend/vite.config.ts)npm run dev — start dev server (port 5174)npm run build — build to frontend/distnpm run preview — preview build (port 4173)dotnet build backend/AuthAPI/AuthAPI.Presentation.csprojdotnet ef migrations add NAME_HERE --project ./AuthAPI.Infrastructure/AuthAPI.Infrastructure.csproj --startup-project ./AuthAPI/AuthAPI.Presentation.csproj --context UserDbContext --output-dir Migrations
dotnet ef migrations add NAME_HERE --project ./Habit.Infrastructure/Habit.Infrastructure.csproj --startup-project ./AuthAPI/AuthAPI.Presentation.csproj --context HabitDbContext --output-dir Migrations
ECONNREFUSED: backend not running on https://localhost:7145 or wrong port.localStorage (frontend uses axios interceptor in frontend/src/shared/lib/axios.ts).docker ps) and port 5433 is free.docker compose down -v
See backend/DockerConfig.md for Postgres + connection string details.
TypeScript
64.6%
C#
34.0%