https://github.com/kayleexx/crabbox
https://github.com/kayleexx/crabbox
Last synced: 12 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/kayleexx/crabbox
- Owner: Kayleexx
- Created: 2025-04-14T16:32:53.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-11T12:10:55.000Z (about 1 year ago)
- Last Synced: 2025-07-03T06:02:55.846Z (about 1 year ago)
- Language: Rust
- Size: 29.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🦀 crabbox
Welcome to **crabbox**, a collection of bite-sized Rust projects 🧠 aimed at sharpening my Rust skills through real-world use cases.
Each 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.
---
## 📦 Projects
### ✅ 1. CLI Expense Tracker
> A command-line based expense tracking tool with structured commands.
📁 `src/commands`:
Includes modular commands:
* `add`: Add a new expense
* `list`: List all expenses
* `remove`: Remove an expense
* `mod`: Modify an existing record
🧠 **Features:**
* Reads and writes expenses to a local JSON file
* Follows idiomatic Rust project structure
* Error handling with `Result` and `unwrap_or_else`
* Uses `Vec` in-memory, synced on app exit
---
### ✅ 2. CLI Todo App
> A Todo manager that reads/writes to a local JSON file.
Planned features:
* Add, list, update, and delete tasks
* Mark tasks as done/undone
* Due dates and categories
* Neat CLI prompts using `dialoguer` or `clap`
---
### ✅ 3. Notes CRUD API (In-memory storage)
> A simple Notes API built with Rust, using Actix-web and in-memory storage for quick testing.
🧠 **Features:**
* Create, read, update, and delete notes
* REST API structure with Actix-web
* In-memory storage using a `HashMap`
* Simple error handling and response formatting
---
### ✅ 4. Book Library API (Actix-web + Diesel ORM + PostgreSQL)
> A REST API for managing books, using Actix-web, Diesel ORM, and PostgreSQL.
🧠 **Features:**
* Add, get, and list books in the library
* PostgreSQL database integration with Diesel ORM
* Routes for managing book data
* Connection pooling with `diesel::r2d2::ConnectionManager`
* Struct mapping with Diesel schema
---
### ✅ 5. TimeTracker CLI
> A simple CLI tool to track the time spent on different projects.
📁 `src/commands`:
Includes modular commands:
* `start `: Start tracking time for a project
* `stop`: Stop tracking the current active project
* `report`: Generate a summary of time spent on each project
🧠 **Features:**
* Uses `chrono` for time management
* Structured data storage with JSON files
* Uses `clap` for command-line argument parsing
* Time formatting (`HH:MM:SS`) for clear reports
* Modular and organized code with separate utility functions for time calculations
---
### ✅ 3. Notes CRUD API (In-memory storage)
> A simple Notes API built with Rust, using Actix-web and in-memory storage for quick testing.
🧠 Features:
- Create, read, update, and delete notes
- REST API structure with Actix-web
- In-memory storage using a `HashMap`
- Simple error handling and response formatting
* Advanced CLI tools with `clap` and `dialoguer`
* Rust web backends with Actix-web and Axum
* Blockchain projects with Solana and Rust
---
### ✅ 4. Book Library API (Actix-web + Diesel ORM + PostgreSQL)
> A REST API for managing books, using Actix-web, Diesel ORM, and PostgreSQL.
🧠 Features:
- Add, get, and list books in the library
- PostgreSQL database integration with Diesel ORM
- Routes for managing book data
- Connection pooling with `diesel::r2d2::ConnectionManager`
- Struct mapping with Diesel schema
## 🚧 More coming soon
## 🧪 Goals
* Practice idiomatic Rust (ownership, lifetimes, modules)
* Learn structured error handling with `thiserror`
* Get comfortable with serialization (`serde`)
* Build confidence through repetition
* Develop a strong understanding of building CLI tools
## 🧑💻 Author
Built with ❤️ and curiosity by **Mitali**.