Refactoring code, fixing name and adding readme
This commit is contained in:
79
README.md
79
README.md
@@ -1,7 +1,78 @@
|
|||||||
# Tauri + SvelteKit + TypeScript
|
# Resona - API Client
|
||||||
|
|
||||||
This template should help get you started developing with Tauri, SvelteKit and TypeScript in Vite.
|
Resona is a modern, cross-platform API client built with Tauri, SvelteKit, and TypeScript. It provides a powerful interface for testing and managing API requests with features like workspace management, collections, and environment variables.
|
||||||
|
|
||||||
## Recommended IDE Setup
|
## Features
|
||||||
|
|
||||||
[VS Code](https://code.visualstudio.com/) + [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer).
|
- 🚀 Cross-platform desktop application (Windows, macOS, Linux)
|
||||||
|
- 📁 Workspace-based organization
|
||||||
|
- 📑 Request collections
|
||||||
|
- 🔄 Environment variables support
|
||||||
|
- 🎨 Beautiful UI with DaisyUI components
|
||||||
|
- 🌓 Light/Dark theme support
|
||||||
|
- 💾 Local storage persistence
|
||||||
|
- ⚡ Fast and lightweight
|
||||||
|
|
||||||
|
## Tech Stack
|
||||||
|
|
||||||
|
- **Frontend**: SvelteKit + TypeScript
|
||||||
|
- **Backend**: Tauri (Rust)
|
||||||
|
- **Styling**: TailwindCSS + DaisyUI
|
||||||
|
- **Database**: SQLite (via rusqlite)
|
||||||
|
- **Build Tool**: Vite
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
- Node.js (v16 or later)
|
||||||
|
- Bun
|
||||||
|
- Rust (latest stable)
|
||||||
|
- Cargo
|
||||||
|
- System dependencies for Tauri (see [Tauri prerequisites](https://tauri.app/v1/guides/getting-started/prerequisites))
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
1. Clone the repository and install dependencies:
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/Xyroscar/resona.git
|
||||||
|
cd resona
|
||||||
|
bun install
|
||||||
|
```
|
||||||
|
|
||||||
|
2. For development server:
|
||||||
|
```bash
|
||||||
|
bun run tauri dev
|
||||||
|
```
|
||||||
|
|
||||||
|
This will launch both the SvelteKit development server and the Tauri application.
|
||||||
|
|
||||||
|
## Building
|
||||||
|
|
||||||
|
To create a production build:
|
||||||
|
```bash
|
||||||
|
bun run tauri build
|
||||||
|
```
|
||||||
|
|
||||||
|
The built application will be available in the `src-tauri/target/release` directory.
|
||||||
|
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
### Development Server
|
||||||
|
|
||||||
|
The development server runs on port 1420 by default. You can modify this in the `vite.config.ts` file.
|
||||||
|
|
||||||
|
### Tauri
|
||||||
|
|
||||||
|
Tauri configuration can be found in `src-tauri/tauri.conf.json`. This includes window settings, build configurations, and security policies.
|
||||||
|
|
||||||
|
### Styling
|
||||||
|
|
||||||
|
The application uses TailwindCSS with DaisyUI for styling. Configuration can be found in:
|
||||||
|
- `tailwind.config.js` - TailwindCSS configuration
|
||||||
|
- `src/app.css` - Global styles
|
||||||
|
|
||||||
|
## Acknowledgments
|
||||||
|
|
||||||
|
- [Tauri](https://tauri.app/) - For the desktop application framework
|
||||||
|
- [SvelteKit](https://kit.svelte.dev/) - For the frontend framework
|
||||||
|
- [DaisyUI](https://daisyui.com/) - For the UI components
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "api-client",
|
"name": "resona",
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
|||||||
2
src-tauri/Cargo.lock
generated
2
src-tauri/Cargo.lock
generated
@@ -75,7 +75,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "74f37166d7d48a0284b99dd824694c26119c700b53bf0d1540cdb147dbdaaf13"
|
checksum = "74f37166d7d48a0284b99dd824694c26119c700b53bf0d1540cdb147dbdaaf13"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "api-tester"
|
name = "Resona"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"reqwest",
|
"reqwest",
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "api-tester"
|
name = "Resona"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
description = "A Tauri App"
|
description = "A Tauri App"
|
||||||
authors = ["you"]
|
authors = ["you"]
|
||||||
license = ""
|
license = ""
|
||||||
repository = ""
|
repository = ""
|
||||||
default-run = "api-tester"
|
default-run = "resona"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.60"
|
rust-version = "1.60"
|
||||||
|
|
||||||
|
|||||||
0
src-tauri/src/client/mod.rs
Normal file
0
src-tauri/src/client/mod.rs
Normal file
@@ -3,3 +3,17 @@ mod collection;
|
|||||||
|
|
||||||
pub use workspace::*;
|
pub use workspace::*;
|
||||||
pub use collection::*;
|
pub use collection::*;
|
||||||
|
|
||||||
|
pub fn handlers() -> impl Fn(tauri::ipc::Invoke) -> bool {
|
||||||
|
tauri::generate_handler![
|
||||||
|
create_workspace,
|
||||||
|
get_workspaces,
|
||||||
|
get_workspace,
|
||||||
|
update_workspace,
|
||||||
|
delete_workspace,
|
||||||
|
create_collection,
|
||||||
|
get_workspace_collections,
|
||||||
|
update_collection,
|
||||||
|
delete_collection
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,13 +1,15 @@
|
|||||||
mod api;
|
|
||||||
mod models;
|
mod models;
|
||||||
mod storage;
|
mod storage;
|
||||||
mod commands;
|
mod commands;
|
||||||
|
mod client;
|
||||||
|
|
||||||
|
use commands::handlers as h;
|
||||||
use storage::Storage;
|
use storage::Storage;
|
||||||
use tauri::Manager;
|
use tauri::Manager;
|
||||||
use std::sync::Mutex;
|
use std::sync::Mutex;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
let handlers = h();
|
||||||
tauri::Builder::default()
|
tauri::Builder::default()
|
||||||
.setup(|app| {
|
.setup(|app| {
|
||||||
let app_dir = app.path().app_data_dir()
|
let app_dir = app.path().app_data_dir()
|
||||||
@@ -19,17 +21,7 @@ fn main() {
|
|||||||
app.manage(Mutex::new(storage));
|
app.manage(Mutex::new(storage));
|
||||||
Ok(())
|
Ok(())
|
||||||
})
|
})
|
||||||
.invoke_handler(tauri::generate_handler![
|
.invoke_handler(handlers)
|
||||||
commands::create_workspace,
|
|
||||||
commands::get_workspaces,
|
|
||||||
commands::get_workspace,
|
|
||||||
commands::update_workspace,
|
|
||||||
commands::delete_workspace,
|
|
||||||
commands::create_collection,
|
|
||||||
commands::get_workspace_collections,
|
|
||||||
commands::update_collection,
|
|
||||||
commands::delete_collection,
|
|
||||||
])
|
|
||||||
.run(tauri::generate_context!())
|
.run(tauri::generate_context!())
|
||||||
.expect("error while running tauri application");
|
.expect("error while running tauri application");
|
||||||
}
|
}
|
||||||
@@ -59,7 +59,7 @@ pub struct Storage {
|
|||||||
|
|
||||||
impl Storage {
|
impl Storage {
|
||||||
pub fn new(app_dir: PathBuf) -> rusqlite::Result<Self> {
|
pub fn new(app_dir: PathBuf) -> rusqlite::Result<Self> {
|
||||||
let db_path = app_dir.join("api-client.db");
|
let db_path = app_dir.join("resona.db");
|
||||||
let data_dir = app_dir.join("data");
|
let data_dir = app_dir.join("data");
|
||||||
|
|
||||||
fs::create_dir_all(&data_dir).map_err(|e| rusqlite::Error::InvalidPath(data_dir.clone()))?;
|
fs::create_dir_all(&data_dir).map_err(|e| rusqlite::Error::InvalidPath(data_dir.clone()))?;
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://schema.tauri.app/config/2",
|
"$schema": "https://schema.tauri.app/config/2",
|
||||||
"productName": "api-client",
|
"productName": "resona",
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"identifier": "com.api-client.app",
|
"identifier": "com.resona.app",
|
||||||
"build": {
|
"build": {
|
||||||
"beforeDevCommand": "bun run dev",
|
"beforeDevCommand": "bun run dev",
|
||||||
"devUrl": "http://localhost:1420",
|
"devUrl": "http://localhost:1420",
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
"app": {
|
"app": {
|
||||||
"windows": [
|
"windows": [
|
||||||
{
|
{
|
||||||
"title": "api-client",
|
"title": "resona",
|
||||||
"width": 800,
|
"width": 800,
|
||||||
"height": 600
|
"height": 600
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user