{"id":28242054,"url":"https://github.com/kayleexx/crabbox","last_synced_at":"2025-08-10T10:03:37.538Z","repository":{"id":287924683,"uuid":"966255118","full_name":"Kayleexx/crabbox","owner":"Kayleexx","description":null,"archived":false,"fork":false,"pushed_at":"2025-05-11T12:10:55.000Z","size":30,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-03T06:02:55.846Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/Kayleexx.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,"zenodo":null}},"created_at":"2025-04-14T16:32:53.000Z","updated_at":"2025-05-11T12:10:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"95b34d9d-7c55-407f-a74b-1b94104fee86","html_url":"https://github.com/Kayleexx/crabbox","commit_stats":null,"previous_names":["kayleexx/crabbox"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Kayleexx/crabbox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kayleexx%2Fcrabbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kayleexx%2Fcrabbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kayleexx%2Fcrabbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kayleexx%2Fcrabbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Kayleexx","download_url":"https://codeload.github.com/Kayleexx/crabbox/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kayleexx%2Fcrabbox/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269706661,"owners_count":24462207,"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","status":"online","status_checked_at":"2025-08-10T02:00:08.965Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"2025-05-19T05:09:23.510Z","updated_at":"2025-08-10T10:03:37.488Z","avatar_url":"https://github.com/Kayleexx.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🦀 crabbox\n\nWelcome to **crabbox**, a collection of bite-sized Rust projects 🧠 aimed at sharpening my Rust skills through real-world use cases.\n\nEach subproject focuses on a specific concept or domain—like file handling, CLI interactivity, or data modeling—making it a great learning and exploration space for both me and anyone interested in practical Rust.\n\n---\n\n## 📦 Projects\n\n### ✅ 1. CLI Expense Tracker\n\n\u003e A command-line based expense tracking tool with structured commands.\n\n📁 `src/commands`:\nIncludes modular commands:\n\n* `add`: Add a new expense\n* `list`: List all expenses\n* `remove`: Remove an expense\n* `mod`: Modify an existing record\n\n🧠 **Features:**\n\n* Reads and writes expenses to a local JSON file\n* Follows idiomatic Rust project structure\n* Error handling with `Result` and `unwrap_or_else`\n* Uses `Vec\u003cExpense\u003e` in-memory, synced on app exit\n\n---\n\n### ✅ 2. CLI Todo App\n\n\u003e A Todo manager that reads/writes to a local JSON file.\n\nPlanned features:\n\n* Add, list, update, and delete tasks\n* Mark tasks as done/undone\n* Due dates and categories\n* Neat CLI prompts using `dialoguer` or `clap`\n\n---\n\n### ✅ 3. Notes CRUD API (In-memory storage)\n\n\u003e A simple Notes API built with Rust, using Actix-web and in-memory storage for quick testing.\n\n🧠 **Features:**\n\n* Create, read, update, and delete notes\n* REST API structure with Actix-web\n* In-memory storage using a `HashMap`\n* Simple error handling and response formatting\n\n---\n\n### ✅ 4. Book Library API (Actix-web + Diesel ORM + PostgreSQL)\n\n\u003e A REST API for managing books, using Actix-web, Diesel ORM, and PostgreSQL.\n\n🧠 **Features:**\n\n* Add, get, and list books in the library\n* PostgreSQL database integration with Diesel ORM\n* Routes for managing book data\n* Connection pooling with `diesel::r2d2::ConnectionManager`\n* Struct mapping with Diesel schema\n\n---\n\n### ✅ 5. TimeTracker CLI\n\n\u003e A simple CLI tool to track the time spent on different projects.\n\n📁 `src/commands`:\nIncludes modular commands:\n\n* `start \u003cproject\u003e`: Start tracking time for a project\n* `stop`: Stop tracking the current active project\n* `report`: Generate a summary of time spent on each project\n\n🧠 **Features:**\n\n* Uses `chrono` for time management\n* Structured data storage with JSON files\n* Uses `clap` for command-line argument parsing\n* Time formatting (`HH:MM:SS`) for clear reports\n* Modular and organized code with separate utility functions for time calculations\n\n---\n\n### ✅ 3. Notes CRUD API (In-memory storage)\n\u003e A simple Notes API built with Rust, using Actix-web and in-memory storage for quick testing.\n\n🧠 Features:\n- Create, read, update, and delete notes\n- REST API structure with Actix-web\n- In-memory storage using a `HashMap`\n- Simple error handling and response formatting\n\n* Advanced CLI tools with `clap` and `dialoguer`\n* Rust web backends with Actix-web and Axum\n* Blockchain projects with Solana and Rust\n\n---\n\n### ✅ 4. Book Library API (Actix-web + Diesel ORM + PostgreSQL)\n\u003e A REST API for managing books, using Actix-web, Diesel ORM, and PostgreSQL.\n\n🧠 Features:\n- Add, get, and list books in the library\n- PostgreSQL database integration with Diesel ORM\n- Routes for managing book data\n- Connection pooling with `diesel::r2d2::ConnectionManager`\n- Struct mapping with Diesel schema\n\n\n\n## 🚧 More coming soon\n\n\n\n## 🧪 Goals\n\n* Practice idiomatic Rust (ownership, lifetimes, modules)\n* Learn structured error handling with `thiserror`\n* Get comfortable with serialization (`serde`)\n* Build confidence through repetition\n* Develop a strong understanding of building CLI tools\n\n\n\n## 🧑‍💻 Author\n\nBuilt with ❤️ and curiosity by **Mitali**.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkayleexx%2Fcrabbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkayleexx%2Fcrabbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkayleexx%2Fcrabbox/lists"}