Code Monkey home page Code Monkey logo

twidge's Introduction


Twidge

A productivity app which is an extension to your mind

Twidge is a cross platform productivity app, powered by rust, tauri, prisma-client-rust

Twidge works entirely offline, the various features provided by twidge are listed below

Motivation

Due to my ever-increasing school work, I seldom had time to code. One day, I tried to see why I was getting so little time, and that is when I realized that a lot of my time was spent deciding what I should do next. The answer was obvious I needed a calendar app, I tried almost all of the calendar apps and realized that I was spending more than 30 minutes filling in my calendar, it was also clear that I needed something more than a calendar, something wherein I can throw all the links when I browse the web so that I can look at them later on, therefore twidge was born.

Features

Completed:

  • Configuration - The structure for the source code of Twidge, built entirely on react, tauri and rust. The structure was inspired by spacedrive

In progress:

  • Spaces - Spaces help you divide tasks based on a specific tag (say work, personal, junk etc)
  • Infinite Scroll View: Twidge aims to offer an infinite scroll view where you can write everything down
  • Todo List: Map all your tasks in a single list, these tasks can be linked with calendars and embeds.
  • Calendar: You can map tasks to calendars so that you know what tasks have to be completed when.
  • Embeds: Embed Youtube vides, Google searches, Twitter posts, etc. So that you never loose that resource which you found 2 months earlier.
  • Global Keymaps: Ctrl+Shift+K and you have your powerful menu โšก, create tasks, embeds, calendar events etc.
  • Notification Handler - So that you are reminded 5-15 minutes before a new task starts.

Post MVP:

  • Mobile app (IOS/Android)
  • Sync between devices.
  • Save all the tasks on the cloud
  • Collaboration of tasks between different people

Architecture

We follow an architecture similar to that of spacedrive.

Monorepo

Apps (/apps)

  • src-tauri: A rust tauri app.
  • web: The website which will be rendered by Tauri

Packages (/packages)

  • components (TS): Components required by the web app
  • config (TS): Project wide config such as eslint, prettier, stitches etc.
  • primitives (TS): UI primivites
  • utils (TS): Utilities required by the web app
  • core (Rust): The core of twidge, built in Rust

twidge's People

Contributors

andrewhummus avatar brendonovich avatar lint-action avatar oscartbeaumont avatar sno2 avatar varunpotti avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

twidge's Issues

"UnsupportedPlatform", apps/src-tauri/main.rs

Attempting to build on Ubuntu 22.04.2 LTS

Backtrace is as follows:

mbroughton@XPS15-9560:~/projects/twidge$ RUST_BACKTRACE=full cargo run
Finished dev [unoptimized + debuginfo] target(s) in 0.28s
Running target/debug/app
INFO tcore::db::migrator > Connecting to library database at /home/mbroughton/.local/share/twidge/dev/library.db
DEBUG mobc > creating new connection from manager
thread 'main' panicked at 'called Result::unwrap() on an Err value: UnsupportedPlatform', apps/src-tauri/src/main.rs:33:63
stack backtrace:
0: 0x55bf35cbf36a - std::backtrace_rs::backtrace::libunwind::trace::h79937bc171ada62c
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
1: 0x55bf35cbf36a - std::backtrace_rs::backtrace::trace_unsynchronized::h2292bca8571cb919
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x55bf35cbf36a - std::sys_common::backtrace::_print_fmt::h9c461f248e4ae90d
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/sys_common/backtrace.rs:65:5
3: 0x55bf35cbf36a - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::he9fe6bf1a39182e1
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/sys_common/backtrace.rs:44:22
4: 0x55bf35ce807e - core::fmt::write::h032658c119c720d7
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/fmt/mod.rs:1208:17
5: 0x55bf35cb8cb5 - std::io::Write::write_fmt::h299fc90dfae41c0d
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/io/mod.rs:1682:15
6: 0x55bf35cbf135 - std::sys_common::backtrace::_print::heb70d25df9937e3f
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/sys_common/backtrace.rs:47:5
7: 0x55bf35cbf135 - std::sys_common::backtrace::print::had745c0a76b8b521
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/sys_common/backtrace.rs:34:9
8: 0x55bf35cc0abf - std::panicking::default_hook::{{closure}}::h1ea782cdfa2fd097
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panicking.rs:267:22
9: 0x55bf35cc07fb - std::panicking::default_hook::h1cc3af63455a163c
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panicking.rs:286:9
10: 0x55bf35cc11cc - std::panicking::rust_panic_with_hook::h5cafdc4b3bfd5528
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panicking.rs:688:13
11: 0x55bf35cc0f69 - std::panicking::begin_panic_handler::{{closure}}::hf31c60f40775892c
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panicking.rs:579:13
12: 0x55bf35cbf81c - std::sys_common::backtrace::__rust_end_short_backtrace::h28a5c7be595826cd
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/sys_common/backtrace.rs:137:18
13: 0x55bf35cc0c72 - rust_begin_unwind
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panicking.rs:575:5
14: 0x55bf33e9c813 - core::panicking::panic_fmt::h8fa27a0b37dd98b7
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/panicking.rs:64:14
15: 0x55bf33e9cca3 - core::result::unwrap_failed::h62abf61e411aaa08
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/result.rs:1791:5
16: 0x55bf342552cc - core::result::Result<T,E>::unwrap::h786cf3cb193e9d51
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/result.rs:1113:23
17: 0x55bf341986ea - app::main::{{closure}}::{{closure}}::hc99b6bec9653c450
at /home/mbroughton/projects/twidge/apps/src-tauri/src/main.rs:33:21
18: 0x55bf342fb118 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h6d0af3ab7528eb9e
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/ops/function.rs:507:5
19: 0x55bf34044c4a - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce>::call_once::h0582d4f914ac20f4
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/alloc/src/boxed.rs:2000:9
20: 0x55bf33f423fa - tauri::app::Builder::build::h91a7aedee57736de
at /home/mbroughton/.cargo/registry/src/github.com-1ecc6299db9ec823/tauri-1.1.1/src/app.rs:1569:5
21: 0x55bf33f3fd01 - tauri::app::Builder::run::h871d8ec3bc6abe36
at /home/mbroughton/.cargo/registry/src/github.com-1ecc6299db9ec823/tauri-1.1.1/src/app.rs:1579:5
22: 0x55bf3419823c - app::main::{{closure}}::h4d7a0f27762e2ddf
at /home/mbroughton/projects/twidge/apps/src-tauri/src/main.rs:18:5
23: 0x55bf342f33c4 - tokio::park::thread::CachedParkThread::block_on::{{closure}}::h97969a35460cfd0c
at /home/mbroughton/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.1/src/park/thread.rs:267:54
24: 0x55bf342f87f0 - tokio::coop::with_budget::{{closure}}::h36ee7da59dcb8ac0
at /home/mbroughton/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.1/src/coop.rs:102:9
25: 0x55bf33fe174c - std::thread::local::LocalKey::try_with::habd37a983e67ca32
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/thread/local.rs:446:16
26: 0x55bf33fddf3d - std::thread::local::LocalKey::with::h918da8879dd0be4e
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/thread/local.rs:422:9
27: 0x55bf342f1f34 - tokio::coop::with_budget::hce90fc7db7c89c17
at /home/mbroughton/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.1/src/coop.rs:95:5
28: 0x55bf342f1f34 - tokio::coop::budget::hf4de9c288f82aa32
at /home/mbroughton/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.1/src/coop.rs:72:5
29: 0x55bf342f1f34 - tokio::park::thread::CachedParkThread::block_on::h588c8108014d7f4c
at /home/mbroughton/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.1/src/park/thread.rs:267:31
30: 0x55bf342b9f13 - tokio::runtime::enter::Enter::block_on::h8515a79b5857fb27
at /home/mbroughton/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.1/src/runtime/enter.rs:152:13
31: 0x55bf3417cf36 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::hc4024c98ca58019d
at /home/mbroughton/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.1/src/runtime/scheduler/multi_thread/mod.rs:79:9
32: 0x55bf341fafc5 - tokio::runtime::Runtime::block_on::he09fdb5ad7665269
at /home/mbroughton/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.21.1/src/runtime/mod.rs:492:44
33: 0x55bf34335c1f - app::main::hfde5891fc1315776
at /home/mbroughton/projects/twidge/apps/src-tauri/src/main.rs:18:5
34: 0x55bf342fcf0b - core::ops::function::FnOnce::call_once::h2aac9556da08d14b
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/ops/function.rs:507:5
35: 0x55bf34229f4e - std::sys_common::backtrace::__rust_begin_short_backtrace::hd0f7152f08e0826b
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/sys_common/backtrace.rs:121:18
36: 0x55bf34144061 - std::rt::lang_start::{{closure}}::hbe09b9ff90e7e440
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/rt.rs:166:18
37: 0x55bf35cb32ec - core::ops::function::impls::<impl core::ops::function::FnOnce for &F>::call_once::hfa1c3687c9a20bb8
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/ops/function.rs:606:13
38: 0x55bf35cb32ec - std::panicking::try::do_call::h0497133ebe1341e5
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panicking.rs:483:40
39: 0x55bf35cb32ec - std::panicking::try::h6c3de05c7ca5d07f
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panicking.rs:447:19
40: 0x55bf35cb32ec - std::panic::catch_unwind::h969058ecb5334b30
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panic.rs:137:14
41: 0x55bf35cb32ec - std::rt::lang_start_internal::{{closure}}::h0de6d98cafb42a58
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/rt.rs:148:48
42: 0x55bf35cb32ec - std::panicking::try::do_call::h77301dcf43953993
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panicking.rs:483:40
43: 0x55bf35cb32ec - std::panicking::try::h45b05523a2fe135a
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panicking.rs:447:19
44: 0x55bf35cb32ec - std::panic::catch_unwind::hd95cea544b2b9bd2
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panic.rs:137:14
45: 0x55bf35cb32ec - std::rt::lang_start_internal::hd16e6ff7bf05a444
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/rt.rs:148:20
46: 0x55bf3414403a - std::rt::lang_start::ha463e3f9aee6a9fd
at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/rt.rs:165:17
47: 0x55bf34335cce - main
48: 0x7f4ba9c29d90 - __libc_start_call_main
at ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
49: 0x7f4ba9c29e40 - __libc_start_main_impl
at ./csu/../csu/libc-start.c:392:3
50: 0x55bf33e9cf35 - _start
51: 0x0 -
DEBUG mobc > Pool internal drop

screenshots

Hi @VarunPotti, I think adding some screenshots in the readme could help better understanding the project.

Use rspc?

Noticed that you're using a bunch of the Spacedrive stack, why not go one step further and use rspc?
For reference, we declare all our api routes here, and expose them to Tauri with a single plugin.
We even have autogenerated typescript bindings!
This probably could have been a discussion but oh well we're here now.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.