Git Product home page Git Product logo

canto's Introduction

 

WIP: See the road map on this readme file

 

About

Canto is am entirely free, simple journaling app for Android. It's built with react-native and may one day be ported to ioPs. It's meant to resolve frustrations with the current journaling mobile app ecosystem - pointless features, insane charges and 'DiaryAsAService'-bs.

Features:

  • Completely free and open source.
  • Management of multiple journals.
  • Encryption. Always. Everywhere.
  • Automated backups with Google Drive.
  • Add images, files, GPS data, tags and comments to your entries.
  • Format using markdown.
  • Optionally use a password to lock your data.
  • Filter and query your previous entries.

 

Contributing

BUG REPORT

Please create an issue tagged as bug. Include the platform, a description of the problem and how to reproduce it.

 

Fixes, improvements, features

Please create an issue for discussing the changes. If all is well, your PR will be merged once reviwed.

 

Localization

Create a PR that adds your language to .src/Dictionary/index.js.

 

Roadmap

First release:

  • (being worked at) Finish Google Drive Integration for automated backups.

    • Fix uploaded image download/upload (currently receiving empty data array from API)
    • Check for bugs
  • Add option to create readable exports of a journal (doc or markdown file)

  • Add option to generate local exports that can be used as backups

  • Add option to load local exports

  • Add loading spin in areas it's needed

  • General compatibility test on other android API levels and devices

Long term support:

  • Tests, none currently exists.
  • Migrate to TypeScript.

 

Development

  1. Connect your phone or emulator using Android Studio

  2. Run JS Server on a terminal

Console #1

> yarn start 
  1. Compile and install Canto

Console #2

> yarn android

 

Google Drive Integration

Install react-native-google-signin and react-native-google-drive-api-wrapper. Make sure your app SHA1 fingerprint is properly setup.

Create a project at Google's API console, adding an OAuth 2.0 web credential. Save it to a gdriveCredentials.js file at this project root directory. Just export the credential json: export default {/* json credentials data */}.

Remember to enable access to the Google Drive API.

 

Build

Android

Issues derived from mmkv-storage

This project uses react-native-mmkv-storage. If the project wont build after following the installation instrunctions, check the related issue.

 

canto's People

Contributors

pboueke avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

canto's Issues

Build issues derived from `react-native-mmkv-storage`

Build error:

CMake error for using react-native-mmkv-storage with Android.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':react-native-mmkv-storage:configureCMakeDebug'.
> C/C++: /home/jawa/Repositories/canto/node_modules/react-native-mmkv-storage/android/src/main/rnmmkv/CMakeLists.txt debug|armeabi-v7a : CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
  Please set them or make sure they are set and tested correctly in the CMake files:
  REACT_NATIVE_JNI_LIB
      linked by target "rnmmkv" in directory /home/jawa/Repositories/canto/node_modules/react-native-mmkv-storage/android/src/main/rnmmkv

Current work-around:

This project uses react-native-mmkv-storage. If the project wont build after following the installation instrunctions, you may need to follow these steps:

  1. In the Android Studio SDK Manager, install CMake 3.10 and make sure it is the only version available.

  2. In the Android Studio Manager, install NDK 21.4.7075529 and make sure it is the only version available.

  3. Specify CMake version at MMKV's build.gradle file.

  • Automated option: run the fix-mmkv script: yarn fix-mmkv (also included in the yarn android script)

  • Manual option: enter node_modules/react-native-mmkv-storage/android/build.gradle and make sure that the CMake version above is specified at externalNativeBuild. Like so:

externalNativeBuild {
    cmake {
        path "./src/main/rnmkv/CMakeLists.txt"
        version "3.10.2"
    }
}

The previous steps came from this related discussion. If they didn´t work, try the following:

4. Delete and reinstall node_modules, apply step 3

5. Clean your project with ./gradlew clean or Android Studio

6. In Android Studio, run Build -> Refresh Linked C++ Projects

The current build process is not deterministic. The previous steps work sometimes, fail others. I am still trying to figure it out. Currently, follow steps 1 to 3 and repeat 5 and 6 untill the project can be built (help needed).

  1. This specific order in Android Studio seems to always work: Build/Clean, Build/Refresh Linked C++ Projects, Build/Make Project, Build/Make Project (yes, build twice, ignore the errors, only the last make should end correctly). Be sure that metro is not running while you do it. Then running yarn android should work.

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.