Skip to content

Commit

Permalink
add README
Browse files Browse the repository at this point in the history
  • Loading branch information
harryfei committed Oct 17, 2023
1 parent 9427395 commit fa164b6
Showing 1 changed file with 97 additions and 9 deletions.
106 changes: 97 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,104 @@
# Enkra Calendar

A new Flutter project.
Enkra Calendar is a privacy-focused calendar app that keeps your dates and events secure with local encryption and end-to-end encrypted cloud storage (to be implemented in the future). With Enkra Calendar, you can easily schedule your tasks, plans, and meetings in the calendar tab, and use the inbox tab as a draft box for your life and work plans.

## Getting Started
## Features

This project is a starting point for a Flutter application.
- Calendar tab: schedule your tasks, plans, and meetings in this tab.
- Inbox tab: use this tab as a draft box for your life and work plans. Long press on an item in the inbox to schedule it as a task in the calendar.

A few resources to get you started if this is your first Flutter project:
## Installation

- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)
- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)
Download it from the <a href='https://play.google.com/store/apps/details?id=io.enkra.calendar' target="_blank">Google Play Store</a>.

For help getting started with Flutter, view our
[online documentation](https://flutter.dev/docs), which offers tutorials,
samples, guidance on mobile development, and a full API reference.
<a href='https://play.google.com/store/apps/details?id=io.enkra.calendar' target="_blank"><img src='https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png' alt='Get it on Google Play' height='60' /></a>

Download it from the <a href='https://apps.apple.com/app/apple-store/id6463155534?pt=126502564&ct=github&mt=8' target="_blank">Apple App Store</a>.

<a href='https://apps.apple.com/app/apple-store/id6463155534?pt=126502564&ct=github&mt=8' target="_blank"><img src='https://developer.apple.com/app-store/marketing/guidelines/images/badge-example-preferred_2x.png' alt='Get it on Apple Store' height='45' /></a>

## End to end encryption

Enkra Calendar use [tink-rust](https://github.com/project-oak/tink-rust) to implement a secure local storage and E2EE feature. The cipher code is implemented entirely in Rust, a memory-safe language, to ensure that the implementation is secure and free from common memory-related vulnerabilities.

For auditor reviewing code, here are some specific files that you can focus on:

- All the cipher code located in `native/src/`

## Getting Started with Development

If you would like to contribute to the development of Enkra Send, follow these steps:

### Linux

1. Install the Flutter SDK according to the Flutter documentation.
2. Install the Rust according to the Rust langugage documentation.
3. Install `cargo-make` and `cargo-ndk`

```sh
cargo install cargo-make cargo-ndk
```

4. Install rust android target

```sh
rustup target add aarch64-linux-android armv7-linux-androideabi x86_64-linux-android
```

5. generate dart files

```sh
dart run flutter_oss_licenses:generate.dart
dart run build_runner build
```

6. flutter run or build

```
flutter run
```

or

```
flutter build apk
```

### macOS

1. Install the Flutter SDK according to the Flutter documentation.
2. Install the Rust according to the Rust langugage documentation.
3. Install `cargo-make` and `cargo-ndk`

```sh
cargo install cargo-make cargo-ndk
```

4. Install rust android target

```sh
rustup target add aarch64-apple-ios x86_64-apple-ios
```

5. generate dart files

```sh
dart run flutter_oss_licenses:generate.dart
dart run build_runner build
```

6. flutter run or build

```
flutter run
```

or

```
flutter build ipa
```

## License

Enkra Calendar is released under the [BSL 1.1](./LICENSE). The software is free to use for non-commercial purposes. After the change date, the software will be released under the GNU General Public License Version 2 ("GPLv2").

0 comments on commit fa164b6

Please sign in to comment.