Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
uhobnil committed Jan 3, 2025
0 parents commit c49459a
Show file tree
Hide file tree
Showing 65 changed files with 15,271 additions and 0 deletions.
22 changes: 22 additions & 0 deletions .github/renovate.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"extends": ["config:recommended", "group:all", "schedule:weekly", ":widenPeerDependencies"],
"enabledManagers": ["cargo", "github-actions", "npm"],
"packageRules": [
{
"matchUpdateTypes": ["patch"],
"enabled": false
},
{
"matchManagers": ["cargo"],
"automerge": true,
"minimumReleaseAge": "2 days"
},
{
"matchManagers": ["npm"],
"automerge": true,
"minimumReleaseAge": "2 days"
}
],
"timezone": "Europe/Helsinki",
"dependencyDashboard": true
}
63 changes: 63 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: "publish"

on:
push:
tags:
- v*.*.*
workflow_dispatch:

concurrency:
group: release-${{ github.ref }}
cancel-in-progress: true

jobs:
publish-tauri:
permissions:
contents: write
strategy:
fail-fast: false
matrix:
include:
- platform: "macos-latest" # for Arm based macs (M1 and above).
args: "--target aarch64-apple-darwin"
- platform: "macos-latest" # for Intel based macs.
args: "--target x86_64-apple-darwin"
- platform: "ubuntu-22.04" # for Tauri v1 you could replace this with ubuntu-20.04.
args: ""
- platform: "windows-latest"
args: ""

runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4

- name: setup node
uses: actions/setup-node@v4
with:
node-version: lts/*

- name: install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
# Those targets are only used on macos runners so it's in an `if` to slightly speed up windows and linux builds.
targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }}

- name: install dependencies (ubuntu only)
if: matrix.platform == 'ubuntu-22.04' # This must match the platform value defined above.
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.0-dev libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
# webkitgtk 4.0 is for Tauri v1 - webkitgtk 4.1 is for Tauri v2.
# You can remove the one that doesn't apply to your app to speed up the workflow a bit.

- name: install frontend dependencies
run: yarn install # change this to npm, pnpm or bun depending on which one you use.

- uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tagName: app-v__VERSION__ # the action automatically replaces \_\_VERSION\_\_ with the app version.
releaseName: "checkin v__VERSION__"
releaseBody: "See the assets to download this version and install."
args: ${{ matrix.args }}
33 changes: 33 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

# Rust
*/target


# Database
*.sqlite3*
*.session.sql
/sqlite_queries
7 changes: 7 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"recommendations": [
"Vue.volar",
"tauri-apps.tauri-vscode",
"rust-lang.rust-analyzer"
]
}
44 changes: 44 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Termin

A cross-platform desktop reminder application built with Tauri. It runs in the system tray and helps you manage your schedules with customizable notifications.

## Features

- 🔔 Schedule Management
- Create and manage schedules
- Multiple reminder types:
- One-time
- Daily
- Weekly
- Monthly
- Yearly
- 💻 System Integration
- 🎯 User Interface
- 🌈 Cross-platform
- Windows
- macOS

## Key Features Implementation

- Schedule Checking: Implemented in Rust backend with precise time matching
- Notification System: Uses Tauri's notification API
- Data Persistence: SQLite database with Sea-ORM
- State Management: In-memory schedule state with thread-safe access

## Tech Stack

- ### Frontend

- Vue 3
- Naive UI
- Tauri API

- ### Backend
- Rust
- Sea-ORM (SQLite)
- Tauri
- Tokio

## License

MIT
Loading

0 comments on commit c49459a

Please sign in to comment.