From f910fa2f469a258eb9cb183e4c53b287fe4fadf2 Mon Sep 17 00:00:00 2001 From: Gabriel Kaszewski Date: Tue, 23 Dec 2025 03:37:06 +0100 Subject: [PATCH] feat: Add initial project documentation (README) and MIT license. --- LICENSE | 21 +++++++++++++ README.md | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 LICENSE create mode 100644 README.md diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..a43ed35 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 Gabriel Kaszewski + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..79a81ca --- /dev/null +++ b/README.md @@ -0,0 +1,90 @@ +# K-Notes + +A modern, self-hosted note-taking application built with performance, security, and clean architecture in mind. + +![K-Notes Logo](k-notes-frontend/public/logo.png) + +## Features + +- **Authentication**: Secure user registration and login. +- **Note Management**: Create, edit, pin, archive, and delete notes. +- **Rich Text**: Markdown support for note content. +- **Version History**: Track changes, view history, note diffs, download versions, and restore previous states. +- **Organization**: Tagging system for easy filtering. +- **Theme**: Dark and Light mode support. +- **Responsive**: Mobile-friendly UI built with Tailwind CSS. +- **Architecture**: + - **Backend**: Hexagonal Architecture (Domain, Infra, API layers) in Rust. + - **Frontend**: Modern React with TypeScript and Vite. +- **Deployment**: Full Docker support with `compose.yml`. + +## Tech Stack + +### Backend +- **Language**: Rust +- **Framework**: Axum +- **Database**: SQLite (SQLx) +- **Dependency Injection**: Manual wiring for clear boundaries + +### Frontend +- **Framework**: React + Vite +- **Language**: TypeScript +- **Styling**: Tailwind CSS + Shadcn UI +- **State Management**: TanStack Query (React Query) + +## Getting Started + +### Docker (Recommended) + +Run the entire stack with a single command: + +```bash +docker compose up -d --build +``` + +- **Frontend**: http://localhost:8080 +- **Backend**: http://localhost:3000 + +The frontend is automatically configured to talk to the backend. + +### Local Development + +#### Backend + +1. Navigate to the `notes-api` directory (or root). +2. Set up the environment variables (see `.env.example`). +3. Run the server: + +```bash +cargo run -p notes-api +``` + +#### Frontend + +1. Navigate to `k-notes-frontend`. +2. Install dependencies: + +```bash +bun install +``` + +3. Run the dev server: + +```bash +bun dev +``` + +## 🏗️ Project Structure + +``` +├── notes-api # API Interface (Axum, HTTP routes) +├── notes-domain # Core Business Logic (Entities, Services, Ports) +├── notes-infra # Infrastructure (Database adapters, Repositories) +├── k-notes-frontend # React Frontend Application +├── migrations # SQLx Database Migrations +└── compose.yml # Docker Composition +``` + +## License + +MIT