Skip to content

Commit 2515e7e

Browse files
authored
V1.0.1
1 parent 31700cb commit 2515e7e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+5022
-4530
lines changed

.github/workflows/ci.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: Rust CI
2+
3+
on:
4+
push:
5+
branches: [ "main" ]
6+
pull_request:
7+
branches: [ "main" ]
8+
workflow_dispatch:
9+
10+
env:
11+
CARGO_TERM_COLOR: always
12+
13+
jobs:
14+
build:
15+
runs-on: macos-latest
16+
17+
steps:
18+
- name: Fetch Repository
19+
uses: actions/checkout@v4
20+
21+
- name: Install stable Rust toolchain
22+
uses: actions-rust-lang/setup-rust-toolchain@v1
23+
with:
24+
toolchain: stable
25+
target: x86_64-unknown-linux-gnu
26+
27+
- name: Run tests
28+
run: |
29+
cd src-tauri
30+
cargo test --verbose

README.md

Lines changed: 44 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -4,35 +4,35 @@
44
<div align="center">
55
<img src="https://img.shields.io/badge/Rust-dea584?style=for-the-badge&logo=rust&logoColor=white" alt="Rust" />
66
<img src="https://img.shields.io/badge/Tauri-ffc130?style=for-the-badge&logo=tauri&logoColor=white" alt="Tauri" />
7-
<img src="https://img.shields.io/badge/Version-1.0.0-7073f6?style=for-the-badge" alt="Version" />
7+
<img src="https://img.shields.io/badge/Version-1.0.1-7073f6?style=for-the-badge" alt="Version" />
88
</div>
99
</div>
1010

1111
<div align="center" style="margin-top: 20px">
12-
<img src="/assets/FileFlowDemo.png" alt="FileFlow" height="250px" width="auto" />
13-
<img src="/assets/Load_data.png" alt="FileFlow" height="250px" width="auto" />
12+
<img src="/assets/Insert.png" alt="FileFlow Insert Mode" height="250px" width="auto" />
13+
<img src="/assets/Download.png" alt="FileFlow Download Mode" height="250px" width="auto" />
1414
</div>
1515

16-
## 📄 Description
16+
## 📖 About
1717

1818
FileFlow is a simple and easy-to-use tool that allows you to insert data from a CSV file directly into a database table.
19-
With no privilege required for insertion, it simplifies the process while offering efficiency.
19+
With no special privileges required for data insertion, it streamlines the process while ensuring efficiency and
20+
security.
2021

2122
Built with **Rust** and the **Tauri** framework, FileFlow is a **cross-platform** application available on **Windows**,
22-
**MacOS**, and **Linux**. 🚀
23+
**macOS**, and **Linux**. 🚀
2324

24-
Check the **Release Section** for the latest version of the application.
25+
_Check out the [Release Section](#release) for the latest version of the application._
2526

2627
## 🌟 Features
2728

28-
- ✅ Insert data into a **new table**
29-
- ✅ Insert data into an **existing table**
30-
-**Optimize** column types (e.g., `VARCHAR(MAX_LENGTH)`)
31-
- ✅ Insert data from a **CSV file**
32-
- ✅ Does **NOT** require **ANY** privileges for data insertion
33-
- ✅ Generate **LOAD DATA** SQL query for **faster insertion**
29+
- **Insert Data Easily**: Insert data into a **new table** or an **existing table** seamlessly.
30+
- **Optimized Data Types**: Automatically optimize column types (e.g., `VARCHAR(MAX_LENGTH)`).
31+
- **CSV File Support**: Directly insert data from CSV files.
32+
- **No Privilege Required**: Operates without requiring any special database privileges.
33+
- **Table Schema Export**: Download table schema as a CSV file for further analysis.
3434

35-
## 🛠 Supported Databases
35+
## 🗄️ Supported Databases
3636

3737
<div align="center">
3838
<img src="https://img.shields.io/badge/MySQL-00758F?style=for-the-badge&logo=mysql&logoColor=white" alt="MySQL" />
@@ -41,74 +41,48 @@ Check the **Release Section** for the latest version of the application.
4141
<img src="https://img.shields.io/badge/SQLite-003B57?style=for-the-badge&logo=sqlite&logoColor=white" alt="SQLite" />
4242
</div>
4343

44-
## 📝 Requirements
44+
## ⚡ Installation
4545

46-
- **Rust**
47-
- **Cargo**
48-
- **pnpm**
46+
1. **Clone the Repository:**
4947

50-
You can follow the instructions on the [Tauri website](https://tauri.app/) to install **Rust** and **Cargo**.
48+
```bash
49+
git clone https://github.com/Maxime-Cllt/FileFlow.git
50+
```
5151

52-
## 📥 Installation
52+
2. **Navigate to the Project Directory and Install Dependencies:**
5353

54-
1. Clone the repository:
54+
```bash
55+
cd FileFlow
56+
pnpm install
57+
```
5558

56-
```bash
57-
git clone https://github.com/Maxime-Cllt/FileFlow.git
58-
```
59+
3. **Build the Application:**
5960

60-
2. Install the dependencies:
61+
```bash
62+
pnpm tauri build
63+
```
6164

62-
```bash
63-
cd FileFlow
64-
pnpm install
65-
```
65+
4. **Run the Application in Development Mode:**
6666

67-
3. Build the application:
67+
```bash
68+
pnpm tauri dev
69+
```
6870

69-
```bash
70-
pnpm tauri build
71-
```
71+
## 🚀 Getting Started
7272

73-
4. Run the application:
73+
To quickly test FileFlow:
7474

75-
```bash
76-
pnpm tauri dev
77-
```
78-
79-
## 💡 Usage
80-
81-
### 1. Insert Data
82-
83-
- 📁 Select the **CSV file** you want to insert into the database.
84-
- 💻 Choose the **database** where you want to insert the data.
85-
- ➡️ Click the **"Insert"** button.
86-
- ⏳ Wait for the data to be inserted.
87-
- ✅ **Done!**
88-
89-
### 2. Generate Load Data
90-
91-
- 📁 Select the **CSV file** you want to insert into the database.
92-
- 🖱️ Click the **"Load"** button in the menu.
93-
- 📋 Copy the generated **SQL query**.
94-
- 🏃‍♂️ Run the query if your database supports it.
95-
- ✅ **Done!**
96-
97-
## ⚙️ Modes of Data Insertion
98-
99-
There are two modes for inserting data into the database:
100-
101-
- **Optimized Mode**: Inserts data into a new table with optimized column types (e.g., `VARCHAR(MAX_LENGTH)`). 🛠️ This
102-
mode may take longer but ensures the table structure is optimized.
103-
104-
- **Fast Mode**: Inserts data into an existing table, keeping the original column types as they are in the CSV file. ⚡
105-
This mode is quicker but may not optimize the column types.
106-
107-
Additionally, you can generate a **LOAD DATA** SQL query for faster insertion if your database supports it. This method
108-
is much quicker than row-by-row insertion! 🚀
75+
1. **Prepare Your CSV File**: Ensure your CSV file is formatted correctly.
76+
2. **Configure Your Database Connection**: Use the built-in connection form to set up your database connection.
77+
3. **Select Insertion Mode**: Choose between Optimized Mode and Fast Mode based on your needs.
78+
4. **Upload and Insert**: Upload your CSV file and start the insertion process. Monitor progress with the on-screen
79+
loader.
10980

11081
## 🤝 Contributing
11182

112-
Want to contribute to the project? Feel free to open an issue or submit a pull request. We welcome contributions and
113-
ideas from the community! 💡
83+
Contributions are welcome! To contribute:
11484

85+
- **Fork the Repository**
86+
- **Create a Feature Branch**:
87+
```bash
88+
git checkout -b feature/your-feature-name

assets/Download.png

980 KB
Loading

assets/FileFlowDemo.png

-806 KB
Binary file not shown.

assets/Insert.png

942 KB
Loading

assets/Load_data.png

-611 KB
Binary file not shown.

index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
66
<title>FileFlow</title>
77
</head>
8-
<body>
9-
<div class="h-screen" id="root"></div>
8+
<body class="overscroll-none h-screen w-full overflow-hidden bg-gray-100">
9+
<div class="flex w-full h-screen overflow-auto" id="root"></div>
1010
<script type="module" src="/src/main.tsx"></script>
1111
</body>
1212
</html>

package.json

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
{
22
"name": "fileflow",
33
"private": true,
4-
"version": "1.0.0",
54
"type": "module",
65
"scripts": {
76
"dev": "vite",
@@ -10,46 +9,44 @@
109
"tauri": "tauri"
1110
},
1211
"dependencies": {
13-
"@radix-ui/react-dialog": "^1.1.4",
12+
"@radix-ui/react-dialog": "^1.1.6",
13+
"@radix-ui/react-dropdown-menu": "^2.1.6",
1414
"@radix-ui/react-icons": "^1.3.2",
15-
"@radix-ui/react-label": "^2.1.1",
16-
"@radix-ui/react-menubar": "^1.1.4",
17-
"@radix-ui/react-radio-group": "^1.2.2",
18-
"@radix-ui/react-select": "^2.1.4",
19-
"@radix-ui/react-separator": "^1.1.1",
20-
"@radix-ui/react-slot": "^1.1.1",
21-
"@radix-ui/react-tooltip": "^1.1.6",
22-
"@tauri-apps/api": "^2.1.1",
23-
"@tauri-apps/plugin-clipboard-manager": "^2.2.0",
24-
"@tauri-apps/plugin-dialog": "~2.0.2",
25-
"@tauri-apps/plugin-fs": "~2.0.4",
26-
"@tauri-apps/plugin-global-shortcut": "~2.0.0",
27-
"@tauri-apps/plugin-http": "~2.0.2",
28-
"@tauri-apps/plugin-notification": "~2.0.0",
29-
"@tauri-apps/plugin-os": "~2.0.0",
30-
"@tauri-apps/plugin-process": "~2.0.0",
31-
"@tauri-apps/plugin-shell": "~2.0.1",
15+
"@radix-ui/react-label": "^2.1.2",
16+
"@radix-ui/react-menubar": "^1.1.6",
17+
"@radix-ui/react-popover": "^1.1.6",
18+
"@radix-ui/react-radio-group": "^1.2.3",
19+
"@radix-ui/react-select": "^2.1.6",
20+
"@radix-ui/react-separator": "^1.1.2",
21+
"@radix-ui/react-slot": "^1.1.2",
22+
"@radix-ui/react-switch": "^1.1.3",
23+
"@radix-ui/react-tabs": "^1.1.3",
24+
"@radix-ui/react-tooltip": "^1.1.8",
25+
"@tauri-apps/api": "^2.3.0",
26+
"@tauri-apps/plugin-dialog": "~2.2.0",
3227
"class-variance-authority": "^0.7.1",
3328
"clsx": "^2.1.1",
29+
"cmdk": "1.0.0",
30+
"framer-motion": "^12.5.0",
3431
"lucide-react": "^0.441.0",
35-
"next-themes": "^0.4.4",
32+
"next-themes": "^0.4.6",
3633
"react": "^18.3.1",
3734
"react-dom": "^18.3.1",
38-
"react-router-dom": "^6.28.1",
39-
"sonner": "^1.7.1",
35+
"react-router-dom": "^6.30.0",
36+
"sonner": "^1.7.4",
4037
"tailwind-merge": "^2.6.0",
4138
"tailwindcss-animate": "^1.0.7"
4239
},
4340
"devDependencies": {
44-
"@tauri-apps/cli": "^2.1.0",
45-
"@types/node": "^22.10.2",
41+
"@tauri-apps/cli": "^2.3.1",
42+
"@types/node": "^22.13.10",
4643
"@types/react": "^18.3.18",
4744
"@types/react-dom": "^18.3.5",
4845
"@vitejs/plugin-react": "^4.3.4",
49-
"autoprefixer": "^10.4.20",
50-
"postcss": "^8.4.49",
46+
"autoprefixer": "^10.4.21",
47+
"postcss": "^8.5.3",
5148
"tailwindcss": "^3.4.17",
52-
"typescript": "^5.7.2",
53-
"vite": "^5.4.11"
49+
"typescript": "^5.8.2",
50+
"vite": "^5.4.14"
5451
}
5552
}

0 commit comments

Comments
 (0)