{"id":18160724,"url":"https://github.com/blankeos/spend-snap","last_synced_at":"2025-06-30T10:04:55.365Z","repository":{"id":237261321,"uuid":"794129248","full_name":"Blankeos/spend-snap","owner":"Blankeos","description":"💸 Receipt-collation app built with SolidJS Drizzle.","archived":false,"fork":false,"pushed_at":"2025-01-09T22:21:26.000Z","size":2367,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-30T10:04:55.205Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Blankeos.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-30T14:06:04.000Z","updated_at":"2025-01-09T22:21:30.000Z","dependencies_parsed_at":"2025-01-09T23:33:56.008Z","dependency_job_id":null,"html_url":"https://github.com/Blankeos/spend-snap","commit_stats":null,"previous_names":["blankeos/spend-snap"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Blankeos/spend-snap","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blankeos%2Fspend-snap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blankeos%2Fspend-snap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blankeos%2Fspend-snap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blankeos%2Fspend-snap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Blankeos","download_url":"https://codeload.github.com/Blankeos/spend-snap/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blankeos%2Fspend-snap/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262753041,"owners_count":23358880,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-02T08:09:10.816Z","updated_at":"2025-06-30T10:04:55.335Z","avatar_url":"https://github.com/Blankeos.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1\u003e💸 Spend Snap\u003c/h1\u003e\n\nReceipt-collation software I'm building for fun for a use-case at my company\nwhere we have to collate receipts from a trip for claims later on.\n\nCould be a start-up idea, idk.\n\n\u003ch2\u003eTable of Contents\u003c/h2\u003e\n\n- [📺 Tech Stack](#%F0%9F%93%BA-tech-stack)\n- [Requirements](#requirements)\n- [🚀 Get started](#%F0%9F%9A%80-get-started)\n- [Notes Backblaze](#notes-backblaze)\n\n## 📺 Tech Stack\n\n- **Solid**\n- **Vike** (I just like it better than Solid-Start because it feels like Svelte for me, also more customizable like making it pass `req` and `res` into my `pageContext`, separate files for `+data.ts`, `+config.ts`. It's a bit verbose in the beginning but it becomes quite pragmatic overtime.))\n- **Hono** - thanks to Vike, I can run it on any web framework of my choosing.\n- **Turso** + **Drizzle ORM**\n- **Backblaze** - File Uploads (LocalStack for S3 in localhost)\n- **Lucia**\n\n## Requirements\n\n- [x] Docker Desktop\n- [x] Bun\n\n## 🚀 Get started\n\n1. Clone\n\n```sh\ngit clone https://github.com/blankeos/spend-snap.git\ncd spend-snap\n```\n\n2. LocalStack (S3) - For dev only\n\n```sh\n# Run localstack to check docker-compose.yml\nbun s3:create\n\n# AWS Configure first (Just use placeholders: https://github.com/localstack/localstack/issues/8424)\naws configure\n\u003e AWS Access Key ID [****************root]: root\n\u003e AWS Secret Access Key [****************password]: password\n\u003e Default region name [us-east-1]: us-east-1 # Because has the features we need.\n\u003e Default output format [None]:\n\n# Create a bucket in s3.\naws --endpoint-url=http://localhost:9000 s3api create-bucket --bucket spend-snap --region us-east-1\n\n# List buckets\naws --endpoint-url=http://localhost:9000 s3api list-buckets\n\n# Alternatively, just visit http://localhost:9000 for the Web UI. Use the root(access key id) and password (access key) to login.\n```\n\n3. Copy and fill env\n\n```sh\ncp .env.example .env\n```\n\n4. Install deps and run\n\n```sh\nbun install\nbun run dev\n```\n\n## Notes Backblaze\n\n- Go to **Application Keys** create a new application key (for the specific project) and save it.\n- Setup cors in Backblaze Bucket\n\n```sh\nbrew install b2-tools\n\n# Use your master key here\nb2 account authorize\n\nb2 bucket update --cors-rules '[\n    {\n        \"corsRuleName\": \"downloadFromAnyOriginWithUpload\",\n        \"allowedOrigins\": [\n            \"*\"\n        ],\n        \"allowedHeaders\": [\n            \"*\"\n        ],\n        \"allowedOperations\": [\n            \"s3_put\"\n        ],\n        \"maxAgeSeconds\": 3600\n    }\n]' spend-snap\n```\n\n- `Endpoint` has to be s3.\u003cregion\u003e.\u003cbackblazedomain\u003e.com\n\n\u003c!-- # SolidStart\n\nEverything you need to build a Solid project, powered by [`solid-start`](https://start.solidjs.com);\n\n## Creating a project\n\n```bash\n# create a new project in the current directory\nnpm init solid@latest\n\n# create a new project in my-app\nnpm init solid@latest my-app\n```\n\n## Developing\n\nOnce you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:\n\n```bash\nnpm run dev\n\n# or start the server and open the app in a new browser tab\nnpm run dev -- --open\n```\n\n## Building\n\nSolid apps are built with _presets_, which optimise your project for deployment to different environments.\n\nBy default, `npm run build` will generate a Node app that you can run with `npm start`. To use a different preset, add it to the `devDependencies` in `package.json` and specify in your `app.config.js`.\n\n## This project was created with the [Solid CLI](https://solid-cli.netlify.app) --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblankeos%2Fspend-snap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblankeos%2Fspend-snap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblankeos%2Fspend-snap/lists"}