Repository files navigation

RoomieManager shared-home management showcase

🌿 RoomieManager

The calm, shared home - organized.

Chores, bills, contracts, members, and the quiet rhythms of living together in one warm, green place.

Live AppAPISwagger


What is this? RoomieManager is a full-stack product for roommates who want to stop negotiating chores in chat threads, stop doing bill math in their heads, and keep house agreements somewhere more dependable than memory. One group, one source of truth, one cozy interface.

RoomieManager web sign-in screen
The front door. Sign in, join a group, settle in.

— · — · — · —

✨ What's Inside

🏠 Groups

Join codes, member roles, active memberships, and a household-shaped permission model.

📋 Chores

One-off tasks, recurring templates, assignments, completion rules, and calendar-ready views.

💸 Finance

Bills, splits, payments, running balances, and settlement suggestions without the spreadsheet ritual.

📜 Contracts

Editable drafts, published versions, and history for the agreements that keep a house clear.

🔐 Auth

Supabase-backed registration, login, email verification, password recovery, and JWT verification.

📊 Dashboard

The morning glance: what is due, what is owed, and what needs attention next.

— · — · — · —

🧱 Stack At A Glance

WebReactTypeScriptViteTailwind

APINestJSPrismaZodjose

PlatformSupabaseDockerCaddyOCIVercel

— · — · — · —

🌐 One Product, Three Surfaces

roomiemanager.site
React + TypeScript + Vite + Tailwind
deployed on Vercel
|
| HTTPS + Bearer JWT
v
api.roomiemanager.site/api/v1
NestJS + Prisma in Docker on OCI
Caddy handles HTTPS
|
v
Supabase
Postgres + Auth
RoomieManager Android Port
Flutter + Material 3
same API, mobile-first UX

The backend owns the business rules. Web and Android share the same auth model, group data, chores, bills, balances, contracts, and response envelope.

— · — · — · —

🚀 Quickstart

Prereqs: Node 20+, pnpm 9, and Supabase database/auth credentials.

git clone https://github.com/GSU-BitByBit/RoomieManager.git
cd RoomieManager

🟢 Backend

cd backend
pnpm install
cp .env.example .env
pnpm prisma:generate
pnpm prisma:migrate:deploy
pnpm dev

API: http://localhost:3000/api/v1

🟢 Frontend

cd frontend
pnpm install
cp .env.example .env
pnpm dev

Web: http://localhost:5173

For Android:

cd ../RoomieManager\ Android\ Port
flutter pub get
flutter run --dart-define=ROOMIE_API_BASE_URL=https://api.roomiemanager.site/api/v1

— · — · — · —

🗺️ Repository Map

RoomieManager/
├── frontend/ React 18 + Vite 6 + Tailwind - the cozy interface
├── backend/ NestJS 10 + Prisma 5 - the rules of the house
├── docs/ Visual assets, docs index, and project notes
├── ARCHITECTURE.md How a request travels through the system
├── AGENTS.md Contributor and coding-agent reference
└── README.md You are here

— · — · — · —

📚 Read More

🏛 ArchitectureARCHITECTURE.md - the story of a request
🧩 Frontendfrontend/README.md - the interface
⚙️ Backendbackend/README.md - the engine
📖 Docs indexdocs/README.md - assets and references
📱 Android portRoomieManager-Android-Port - the same home, in your pocket

— · — · — · —

🧪 Verification

cd backend
pnpm verify
cd frontend
pnpm build
curl https://api.roomiemanager.site/api/v1/health/live
curl https://api.roomiemanager.site/api/v1/health/ready

— · — · — · —

Built with care for calmer shared homes.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

RoomieManager shared-home management showcase

🌿 RoomieManager

The calm, shared home - organized.

Chores, bills, contracts, members, and the quiet rhythms of living together in one warm, green place.

Live AppAPISwagger


What is this? RoomieManager is a full-stack product for roommates who want to stop negotiating chores in chat threads, stop doing bill math in their heads, and keep house agreements somewhere more dependable than memory. One group, one source of truth, one cozy interface.

RoomieManager web sign-in screen
The front door. Sign in, join a group, settle in.

— · — · — · —

✨ What's Inside

🏠 Groups

Join codes, member roles, active memberships, and a household-shaped permission model.

📋 Chores

One-off tasks, recurring templates, assignments, completion rules, and calendar-ready views.

💸 Finance

Bills, splits, payments, running balances, and settlement suggestions without the spreadsheet ritual.

📜 Contracts

Editable drafts, published versions, and history for the agreements that keep a house clear.

🔐 Auth

Supabase-backed registration, login, email verification, password recovery, and JWT verification.

📊 Dashboard

The morning glance: what is due, what is owed, and what needs attention next.

— · — · — · —

🧱 Stack At A Glance

WebReactTypeScriptViteTailwind

APINestJSPrismaZodjose

PlatformSupabaseDockerCaddyOCIVercel

— · — · — · —

🌐 One Product, Three Surfaces

roomiemanager.site
React + TypeScript + Vite + Tailwind
deployed on Vercel
|
| HTTPS + Bearer JWT
v
api.roomiemanager.site/api/v1
NestJS + Prisma in Docker on OCI
Caddy handles HTTPS
|
v
Supabase
Postgres + Auth
RoomieManager Android Port
Flutter + Material 3
same API, mobile-first UX

The backend owns the business rules. Web and Android share the same auth model, group data, chores, bills, balances, contracts, and response envelope.

— · — · — · —

🚀 Quickstart

Prereqs: Node 20+, pnpm 9, and Supabase database/auth credentials.

git clone https://github.com/GSU-BitByBit/RoomieManager.git
cd RoomieManager

🟢 Backend

cd backend
pnpm install
cp .env.example .env
pnpm prisma:generate
pnpm prisma:migrate:deploy
pnpm dev

API: http://localhost:3000/api/v1

🟢 Frontend

cd frontend
pnpm install
cp .env.example .env
pnpm dev

Web: http://localhost:5173

For Android:

cd ../RoomieManager\ Android\ Port
flutter pub get
flutter run --dart-define=ROOMIE_API_BASE_URL=https://api.roomiemanager.site/api/v1

— · — · — · —

🗺️ Repository Map

RoomieManager/
├── frontend/ React 18 + Vite 6 + Tailwind - the cozy interface
├── backend/ NestJS 10 + Prisma 5 - the rules of the house
├── docs/ Visual assets, docs index, and project notes
├── ARCHITECTURE.md How a request travels through the system
├── AGENTS.md Contributor and coding-agent reference
└── README.md You are here

— · — · — · —

📚 Read More

🏛 ArchitectureARCHITECTURE.md - the story of a request
🧩 Frontendfrontend/README.md - the interface
⚙️ Backendbackend/README.md - the engine
📖 Docs indexdocs/README.md - assets and references
📱 Android portRoomieManager-Android-Port - the same home, in your pocket

— · — · — · —

🧪 Verification

cd backend
pnpm verify
cd frontend
pnpm build
curl https://api.roomiemanager.site/api/v1/health/live
curl https://api.roomiemanager.site/api/v1/health/ready

— · — · — · —

Built with care for calmer shared homes.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

RoomieManager shared-home management showcase

🌿 RoomieManager

The calm, shared home - organized.

Chores, bills, contracts, members, and the quiet rhythms of living together in one warm, green place.

Live AppAPISwagger


What is this? RoomieManager is a full-stack product for roommates who want to stop negotiating chores in chat threads, stop doing bill math in their heads, and keep house agreements somewhere more dependable than memory. One group, one source of truth, one cozy interface.

RoomieManager web sign-in screen
The front door. Sign in, join a group, settle in.

— · — · — · —

✨ What's Inside

🏠 Groups

Join codes, member roles, active memberships, and a household-shaped permission model.

📋 Chores

One-off tasks, recurring templates, assignments, completion rules, and calendar-ready views.

💸 Finance

Bills, splits, payments, running balances, and settlement suggestions without the spreadsheet ritual.

📜 Contracts

Editable drafts, published versions, and history for the agreements that keep a house clear.

🔐 Auth

Supabase-backed registration, login, email verification, password recovery, and JWT verification.

📊 Dashboard

The morning glance: what is due, what is owed, and what needs attention next.

— · — · — · —

🧱 Stack At A Glance

WebReactTypeScriptViteTailwind

APINestJSPrismaZodjose

PlatformSupabaseDockerCaddyOCIVercel

— · — · — · —

🌐 One Product, Three Surfaces

roomiemanager.site
React + TypeScript + Vite + Tailwind
deployed on Vercel
|
| HTTPS + Bearer JWT
v
api.roomiemanager.site/api/v1
NestJS + Prisma in Docker on OCI
Caddy handles HTTPS
|
v
Supabase
Postgres + Auth
RoomieManager Android Port
Flutter + Material 3
same API, mobile-first UX

The backend owns the business rules. Web and Android share the same auth model, group data, chores, bills, balances, contracts, and response envelope.

— · — · — · —

🚀 Quickstart

Prereqs: Node 20+, pnpm 9, and Supabase database/auth credentials.

git clone https://github.com/GSU-BitByBit/RoomieManager.git
cd RoomieManager

🟢 Backend

cd backend
pnpm install
cp .env.example .env
pnpm prisma:generate
pnpm prisma:migrate:deploy
pnpm dev

API: http://localhost:3000/api/v1

🟢 Frontend

cd frontend
pnpm install
cp .env.example .env
pnpm dev

Web: http://localhost:5173

For Android:

cd ../RoomieManager\ Android\ Port
flutter pub get
flutter run --dart-define=ROOMIE_API_BASE_URL=https://api.roomiemanager.site/api/v1

— · — · — · —

🗺️ Repository Map

RoomieManager/
├── frontend/ React 18 + Vite 6 + Tailwind - the cozy interface
├── backend/ NestJS 10 + Prisma 5 - the rules of the house
├── docs/ Visual assets, docs index, and project notes
├── ARCHITECTURE.md How a request travels through the system
├── AGENTS.md Contributor and coding-agent reference
└── README.md You are here

— · — · — · —

📚 Read More

🏛 ArchitectureARCHITECTURE.md - the story of a request
🧩 Frontendfrontend/README.md - the interface
⚙️ Backendbackend/README.md - the engine
📖 Docs indexdocs/README.md - assets and references
📱 Android portRoomieManager-Android-Port - the same home, in your pocket

— · — · — · —

🧪 Verification

cd backend
pnpm verify
cd frontend
pnpm build
curl https://api.roomiemanager.site/api/v1/health/live
curl https://api.roomiemanager.site/api/v1/health/ready

— · — · — · —

Built with care for calmer shared homes.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

RoomieManager shared-home management showcase

🌿 RoomieManager

The calm, shared home - organized.

Chores, bills, contracts, members, and the quiet rhythms of living together in one warm, green place.

Live AppAPISwagger


What is this? RoomieManager is a full-stack product for roommates who want to stop negotiating chores in chat threads, stop doing bill math in their heads, and keep house agreements somewhere more dependable than memory. One group, one source of truth, one cozy interface.

RoomieManager web sign-in screen
The front door. Sign in, join a group, settle in.

— · — · — · —

✨ What's Inside

🏠 Groups

Join codes, member roles, active memberships, and a household-shaped permission model.

📋 Chores

One-off tasks, recurring templates, assignments, completion rules, and calendar-ready views.

💸 Finance

Bills, splits, payments, running balances, and settlement suggestions without the spreadsheet ritual.

📜 Contracts

Editable drafts, published versions, and history for the agreements that keep a house clear.

🔐 Auth

Supabase-backed registration, login, email verification, password recovery, and JWT verification.

📊 Dashboard

The morning glance: what is due, what is owed, and what needs attention next.

— · — · — · —

🧱 Stack At A Glance

WebReactTypeScriptViteTailwind

APINestJSPrismaZodjose

PlatformSupabaseDockerCaddyOCIVercel

— · — · — · —

🌐 One Product, Three Surfaces

roomiemanager.site
React + TypeScript + Vite + Tailwind
deployed on Vercel
|
| HTTPS + Bearer JWT
v
api.roomiemanager.site/api/v1
NestJS + Prisma in Docker on OCI
Caddy handles HTTPS
|
v
Supabase
Postgres + Auth
RoomieManager Android Port
Flutter + Material 3
same API, mobile-first UX

The backend owns the business rules. Web and Android share the same auth model, group data, chores, bills, balances, contracts, and response envelope.

— · — · — · —

🚀 Quickstart

Prereqs: Node 20+, pnpm 9, and Supabase database/auth credentials.

git clone https://github.com/GSU-BitByBit/RoomieManager.git
cd RoomieManager

🟢 Backend

cd backend
pnpm install
cp .env.example .env
pnpm prisma:generate
pnpm prisma:migrate:deploy
pnpm dev

API: http://localhost:3000/api/v1

🟢 Frontend

cd frontend
pnpm install
cp .env.example .env
pnpm dev

Web: http://localhost:5173

For Android:

cd ../RoomieManager\ Android\ Port
flutter pub get
flutter run --dart-define=ROOMIE_API_BASE_URL=https://api.roomiemanager.site/api/v1

— · — · — · —

🗺️ Repository Map

RoomieManager/
├── frontend/ React 18 + Vite 6 + Tailwind - the cozy interface
├── backend/ NestJS 10 + Prisma 5 - the rules of the house
├── docs/ Visual assets, docs index, and project notes
├── ARCHITECTURE.md How a request travels through the system
├── AGENTS.md Contributor and coding-agent reference
└── README.md You are here

— · — · — · —

📚 Read More

🏛 ArchitectureARCHITECTURE.md - the story of a request
🧩 Frontendfrontend/README.md - the interface
⚙️ Backendbackend/README.md - the engine
📖 Docs indexdocs/README.md - assets and references
📱 Android portRoomieManager-Android-Port - the same home, in your pocket

— · — · — · —

🧪 Verification

cd backend
pnpm verify
cd frontend
pnpm build
curl https://api.roomiemanager.site/api/v1/health/live
curl https://api.roomiemanager.site/api/v1/health/ready

— · — · — · —

Built with care for calmer shared homes.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

RoomieManager shared-home management showcase

🌿 RoomieManager

The calm, shared home - organized.

Chores, bills, contracts, members, and the quiet rhythms of living together in one warm, green place.

Live AppAPISwagger


What is this? RoomieManager is a full-stack product for roommates who want to stop negotiating chores in chat threads, stop doing bill math in their heads, and keep house agreements somewhere more dependable than memory. One group, one source of truth, one cozy interface.

RoomieManager web sign-in screen
The front door. Sign in, join a group, settle in.

— · — · — · —

✨ What's Inside

🏠 Groups

Join codes, member roles, active memberships, and a household-shaped permission model.

📋 Chores

One-off tasks, recurring templates, assignments, completion rules, and calendar-ready views.

💸 Finance

Bills, splits, payments, running balances, and settlement suggestions without the spreadsheet ritual.

📜 Contracts

Editable drafts, published versions, and history for the agreements that keep a house clear.

🔐 Auth

Supabase-backed registration, login, email verification, password recovery, and JWT verification.

📊 Dashboard

The morning glance: what is due, what is owed, and what needs attention next.

— · — · — · —

🧱 Stack At A Glance

WebReactTypeScriptViteTailwind

APINestJSPrismaZodjose

PlatformSupabaseDockerCaddyOCIVercel

— · — · — · —

🌐 One Product, Three Surfaces

roomiemanager.site
React + TypeScript + Vite + Tailwind
deployed on Vercel
|
| HTTPS + Bearer JWT
v
api.roomiemanager.site/api/v1
NestJS + Prisma in Docker on OCI
Caddy handles HTTPS
|
v
Supabase
Postgres + Auth
RoomieManager Android Port
Flutter + Material 3
same API, mobile-first UX

The backend owns the business rules. Web and Android share the same auth model, group data, chores, bills, balances, contracts, and response envelope.

— · — · — · —

🚀 Quickstart

Prereqs: Node 20+, pnpm 9, and Supabase database/auth credentials.

git clone https://github.com/GSU-BitByBit/RoomieManager.git
cd RoomieManager

🟢 Backend

cd backend
pnpm install
cp .env.example .env
pnpm prisma:generate
pnpm prisma:migrate:deploy
pnpm dev

API: http://localhost:3000/api/v1

🟢 Frontend

cd frontend
pnpm install
cp .env.example .env
pnpm dev

Web: http://localhost:5173

For Android:

cd ../RoomieManager\ Android\ Port
flutter pub get
flutter run --dart-define=ROOMIE_API_BASE_URL=https://api.roomiemanager.site/api/v1

— · — · — · —

🗺️ Repository Map

RoomieManager/
├── frontend/ React 18 + Vite 6 + Tailwind - the cozy interface
├── backend/ NestJS 10 + Prisma 5 - the rules of the house
├── docs/ Visual assets, docs index, and project notes
├── ARCHITECTURE.md How a request travels through the system
├── AGENTS.md Contributor and coding-agent reference
└── README.md You are here

— · — · — · —

📚 Read More

🏛 ArchitectureARCHITECTURE.md - the story of a request
🧩 Frontendfrontend/README.md - the interface
⚙️ Backendbackend/README.md - the engine
📖 Docs indexdocs/README.md - assets and references
📱 Android portRoomieManager-Android-Port - the same home, in your pocket

— · — · — · —

🧪 Verification

cd backend
pnpm verify
cd frontend
pnpm build
curl https://api.roomiemanager.site/api/v1/health/live
curl https://api.roomiemanager.site/api/v1/health/ready

— · — · — · —

Built with care for calmer shared homes.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

RoomieManager shared-home management showcase

🌿 RoomieManager

The calm, shared home - organized.

Chores, bills, contracts, members, and the quiet rhythms of living together in one warm, green place.

Live AppAPISwagger


What is this? RoomieManager is a full-stack product for roommates who want to stop negotiating chores in chat threads, stop doing bill math in their heads, and keep house agreements somewhere more dependable than memory. One group, one source of truth, one cozy interface.

RoomieManager web sign-in screen
The front door. Sign in, join a group, settle in.

— · — · — · —

✨ What's Inside

🏠 Groups

Join codes, member roles, active memberships, and a household-shaped permission model.

📋 Chores

One-off tasks, recurring templates, assignments, completion rules, and calendar-ready views.

💸 Finance

Bills, splits, payments, running balances, and settlement suggestions without the spreadsheet ritual.

📜 Contracts

Editable drafts, published versions, and history for the agreements that keep a house clear.

🔐 Auth

Supabase-backed registration, login, email verification, password recovery, and JWT verification.

📊 Dashboard

The morning glance: what is due, what is owed, and what needs attention next.

— · — · — · —

🧱 Stack At A Glance

WebReactTypeScriptViteTailwind

APINestJSPrismaZodjose

PlatformSupabaseDockerCaddyOCIVercel

— · — · — · —

🌐 One Product, Three Surfaces

roomiemanager.site
React + TypeScript + Vite + Tailwind
deployed on Vercel
|
| HTTPS + Bearer JWT
v
api.roomiemanager.site/api/v1
NestJS + Prisma in Docker on OCI
Caddy handles HTTPS
|
v
Supabase
Postgres + Auth
RoomieManager Android Port
Flutter + Material 3
same API, mobile-first UX

The backend owns the business rules. Web and Android share the same auth model, group data, chores, bills, balances, contracts, and response envelope.

— · — · — · —

🚀 Quickstart

Prereqs: Node 20+, pnpm 9, and Supabase database/auth credentials.

git clone https://github.com/GSU-BitByBit/RoomieManager.git
cd RoomieManager

🟢 Backend

cd backend
pnpm install
cp .env.example .env
pnpm prisma:generate
pnpm prisma:migrate:deploy
pnpm dev

API: http://localhost:3000/api/v1

🟢 Frontend

cd frontend
pnpm install
cp .env.example .env
pnpm dev

Web: http://localhost:5173

For Android:

cd ../RoomieManager\ Android\ Port
flutter pub get
flutter run --dart-define=ROOMIE_API_BASE_URL=https://api.roomiemanager.site/api/v1

— · — · — · —

🗺️ Repository Map

RoomieManager/
├── frontend/ React 18 + Vite 6 + Tailwind - the cozy interface
├── backend/ NestJS 10 + Prisma 5 - the rules of the house
├── docs/ Visual assets, docs index, and project notes
├── ARCHITECTURE.md How a request travels through the system
├── AGENTS.md Contributor and coding-agent reference
└── README.md You are here

— · — · — · —

📚 Read More

🏛 ArchitectureARCHITECTURE.md - the story of a request
🧩 Frontendfrontend/README.md - the interface
⚙️ Backendbackend/README.md - the engine
📖 Docs indexdocs/README.md - assets and references
📱 Android portRoomieManager-Android-Port - the same home, in your pocket

— · — · — · —

🧪 Verification

cd backend
pnpm verify
cd frontend
pnpm build
curl https://api.roomiemanager.site/api/v1/health/live
curl https://api.roomiemanager.site/api/v1/health/ready

— · — · — · —

Built with care for calmer shared homes.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

RoomieManager shared-home management showcase

🌿 RoomieManager

The calm, shared home - organized.

Chores, bills, contracts, members, and the quiet rhythms of living together in one warm, green place.

Live AppAPISwagger


What is this? RoomieManager is a full-stack product for roommates who want to stop negotiating chores in chat threads, stop doing bill math in their heads, and keep house agreements somewhere more dependable than memory. One group, one source of truth, one cozy interface.

RoomieManager web sign-in screen
The front door. Sign in, join a group, settle in.

— · — · — · —

✨ What's Inside

🏠 Groups

Join codes, member roles, active memberships, and a household-shaped permission model.

📋 Chores

One-off tasks, recurring templates, assignments, completion rules, and calendar-ready views.

💸 Finance

Bills, splits, payments, running balances, and settlement suggestions without the spreadsheet ritual.

📜 Contracts

Editable drafts, published versions, and history for the agreements that keep a house clear.

🔐 Auth

Supabase-backed registration, login, email verification, password recovery, and JWT verification.

📊 Dashboard

The morning glance: what is due, what is owed, and what needs attention next.

— · — · — · —

🧱 Stack At A Glance

WebReactTypeScriptViteTailwind

APINestJSPrismaZodjose

PlatformSupabaseDockerCaddyOCIVercel

— · — · — · —

🌐 One Product, Three Surfaces

roomiemanager.site
React + TypeScript + Vite + Tailwind
deployed on Vercel
|
| HTTPS + Bearer JWT
v
api.roomiemanager.site/api/v1
NestJS + Prisma in Docker on OCI
Caddy handles HTTPS
|
v
Supabase
Postgres + Auth
RoomieManager Android Port
Flutter + Material 3
same API, mobile-first UX

The backend owns the business rules. Web and Android share the same auth model, group data, chores, bills, balances, contracts, and response envelope.

— · — · — · —

🚀 Quickstart

Prereqs: Node 20+, pnpm 9, and Supabase database/auth credentials.

git clone https://github.com/GSU-BitByBit/RoomieManager.git
cd RoomieManager

🟢 Backend

cd backend
pnpm install
cp .env.example .env
pnpm prisma:generate
pnpm prisma:migrate:deploy
pnpm dev

API: http://localhost:3000/api/v1

🟢 Frontend

cd frontend
pnpm install
cp .env.example .env
pnpm dev

Web: http://localhost:5173

For Android:

cd ../RoomieManager\ Android\ Port
flutter pub get
flutter run --dart-define=ROOMIE_API_BASE_URL=https://api.roomiemanager.site/api/v1

— · — · — · —

🗺️ Repository Map

RoomieManager/
├── frontend/ React 18 + Vite 6 + Tailwind - the cozy interface
├── backend/ NestJS 10 + Prisma 5 - the rules of the house
├── docs/ Visual assets, docs index, and project notes
├── ARCHITECTURE.md How a request travels through the system
├── AGENTS.md Contributor and coding-agent reference
└── README.md You are here

— · — · — · —

📚 Read More

🏛 ArchitectureARCHITECTURE.md - the story of a request
🧩 Frontendfrontend/README.md - the interface
⚙️ Backendbackend/README.md - the engine
📖 Docs indexdocs/README.md - assets and references
📱 Android portRoomieManager-Android-Port - the same home, in your pocket

— · — · — · —

🧪 Verification

cd backend
pnpm verify
cd frontend
pnpm build
curl https://api.roomiemanager.site/api/v1/health/live
curl https://api.roomiemanager.site/api/v1/health/ready

— · — · — · —

Built with care for calmer shared homes.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

RoomieManager shared-home management showcase

🌿 RoomieManager

The calm, shared home - organized.

Chores, bills, contracts, members, and the quiet rhythms of living together in one warm, green place.

Live AppAPISwagger


What is this? RoomieManager is a full-stack product for roommates who want to stop negotiating chores in chat threads, stop doing bill math in their heads, and keep house agreements somewhere more dependable than memory. One group, one source of truth, one cozy interface.

RoomieManager web sign-in screen
The front door. Sign in, join a group, settle in.

— · — · — · —

✨ What's Inside

🏠 Groups

Join codes, member roles, active memberships, and a household-shaped permission model.

📋 Chores

One-off tasks, recurring templates, assignments, completion rules, and calendar-ready views.

💸 Finance

Bills, splits, payments, running balances, and settlement suggestions without the spreadsheet ritual.

📜 Contracts

Editable drafts, published versions, and history for the agreements that keep a house clear.

🔐 Auth

Supabase-backed registration, login, email verification, password recovery, and JWT verification.

📊 Dashboard

The morning glance: what is due, what is owed, and what needs attention next.

— · — · — · —

🧱 Stack At A Glance

WebReactTypeScriptViteTailwind

APINestJSPrismaZodjose

PlatformSupabaseDockerCaddyOCIVercel

— · — · — · —

🌐 One Product, Three Surfaces

roomiemanager.site
React + TypeScript + Vite + Tailwind
deployed on Vercel
|
| HTTPS + Bearer JWT
v
api.roomiemanager.site/api/v1
NestJS + Prisma in Docker on OCI
Caddy handles HTTPS
|
v
Supabase
Postgres + Auth
RoomieManager Android Port
Flutter + Material 3
same API, mobile-first UX

The backend owns the business rules. Web and Android share the same auth model, group data, chores, bills, balances, contracts, and response envelope.

— · — · — · —

🚀 Quickstart

Prereqs: Node 20+, pnpm 9, and Supabase database/auth credentials.

git clone https://github.com/GSU-BitByBit/RoomieManager.git
cd RoomieManager

🟢 Backend

cd backend
pnpm install
cp .env.example .env
pnpm prisma:generate
pnpm prisma:migrate:deploy
pnpm dev

API: http://localhost:3000/api/v1

🟢 Frontend

cd frontend
pnpm install
cp .env.example .env
pnpm dev

Web: http://localhost:5173

For Android:

cd ../RoomieManager\ Android\ Port
flutter pub get
flutter run --dart-define=ROOMIE_API_BASE_URL=https://api.roomiemanager.site/api/v1

— · — · — · —

🗺️ Repository Map

RoomieManager/
├── frontend/ React 18 + Vite 6 + Tailwind - the cozy interface
├── backend/ NestJS 10 + Prisma 5 - the rules of the house
├── docs/ Visual assets, docs index, and project notes
├── ARCHITECTURE.md How a request travels through the system
├── AGENTS.md Contributor and coding-agent reference
└── README.md You are here

— · — · — · —

📚 Read More

🏛 ArchitectureARCHITECTURE.md - the story of a request
🧩 Frontendfrontend/README.md - the interface
⚙️ Backendbackend/README.md - the engine
📖 Docs indexdocs/README.md - assets and references
📱 Android portRoomieManager-Android-Port - the same home, in your pocket

— · — · — · —

🧪 Verification

cd backend
pnpm verify
cd frontend
pnpm build
curl https://api.roomiemanager.site/api/v1/health/live
curl https://api.roomiemanager.site/api/v1/health/ready

— · — · — · —

Built with care for calmer shared homes.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages