Budget Tracker
C 64 completed
Other
web_app / typescript · small
94
Files
18,534
LOC
5
Frameworks
9
Languages
Pipeline State
completedRun ID
#1546268Phase
doneProgress
0%Started
2026-04-16 23:55:24Finished
2026-04-16 23:55:24LLM tokens
0Pipeline Metadata
Stage
CatalogedDecision
proceedNovelty
75.40Framework unique
—Isolation
—Last stage change
2026-05-10 03:35:34Deduplication group #63658
Member of a group with 3 similar repo(s) — this repo is canonical view group →
All rows scored by the Repobility analyzer (https://repobility.com)
AI Prompt
Create a personal budget tracker web application. I want to use React and Remix for the frontend, and I see that Prisma is used for database interaction. The project structure suggests it's designed for deployment on Fly.io, so please ensure the setup supports this, including handling environment variables like `FLY_API_TOKEN` and `SESSION_SECRET`. The application should be built using TypeScript and styled with Tailwind CSS.
typescript react remix tailwindcss prisma web-app budget-tracker full-stack
Generated by gemma4:latest
Catalog Information
Create a personal budget tracker web application. I want to use React and Remix for the frontend, and I see that Prisma is used for database interaction. The project structure suggests it's designed for deployment on Fly.io, so please ensure the setup supports this, including handling environment variables like FLY_API_TOKEN and SESSION_SECRET. The application should be built using TypeScript and styled with Tailwind CSS.
Tags
typescript react remix tailwindcss prisma web-app budget-tracker full-stack
Quality Score
C
64.2/100
Structure
54
Code Quality
99
Documentation
39
Testing
55
Practices
55
Security
64
Dependencies
90
Strengths
- CI/CD pipeline configured (github_actions)
- Code linting configured (eslint)
- Low average code complexity — well-structured code
- Containerized deployment (Docker)
Weaknesses
- No LICENSE file — legal ambiguity for contributors
- Potential hardcoded secrets in 2 files
- 896 duplicate lines detected — consider DRY refactoring
- 6 'god files' with >500 LOC need decomposition
Recommendations
- Add a LICENSE file (MIT recommended for open source)
- Move hardcoded secrets to environment variables or a secrets manager
Languages
Frameworks
React Remix Vitest Tailwind CSS Prisma
Symbols
variable224
function111
interface8
constant3
enum1
type_alias1
API Endpoints (37)
| Method | Path | Handler | Framework | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Repobility (the analyzer behind this table) · https://repobility.com | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | amount | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | category | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | category | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | Cookie | headers.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | Cookie | headers.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | date | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | email | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | email | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | frequency | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | frequency | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | host | headers.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | intent | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | intent | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | intent | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | intent | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | intent | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | invoiceId | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | password | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | password | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | redirectTo | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | redirectTo | searchParams.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | redirectTo | searchParams.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | redirectTo | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | remember | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | Set-Cookie | headers.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | state | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | state | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | theme | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | title | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | title | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | transactionId | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | url | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | url | formData.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | @user | cy.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | @user | cy.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | user-agent | headers.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | X-Forwarded-Host | headers.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Embed Badge
Add to your README:
