Coder Social home page Coder Social logo

jjp / meo Goto Github PK

View Code? Open in Web Editor NEW

This project forked from matthiasn/lotti

0.0 2.0 0.0 8.98 MB

A geo-aware (and private) personal information manager

License: GNU Affero General Public License v3.0

HTML 1.06% JavaScript 5.83% Shell 0.74% Clojure 79.42% Python 0.20% Java 0.21% Objective-C 0.52% CSS 12.02%

meo's Introduction

meo

meo is a personal information manager for recording and improving my life. It starts with a geo-aware journal where each entry captures your geo-location and whatever you want to note about that moment. You can use hashtags and mentions to better organize your information. You can also track your tasks and habits.

Here's how that currently looks like:

screenshot

Motivation

See this blog post for the background. More blog posts to follow.

Components

meo consists of a Clojure and ClojureScript system spanning an Electron application and a backend that runs on the JVM. There's also a mobile companion app written in ClojureScript on top of React Native, see ./rn-app in this repository. All subsystems in meo make use of the systems-toolbox for its architecture.

Here's how the app currently looks like:

screenshot

Installation

There are two install scripts, one for Ubuntu and one for the Mac. These install the dependencies required. If anything is missing, please submit a pull request. And have a look at what the script for your platform does before blindly running it, and typing in your superuser password, which is required for apt in the Linux version.

For Mac:

$ ./install_mac.sh

For Linux:

$ ./install_ubuntu.sh

Then, you need to install the JavaScript dependencies:

$ yarn install

Once that is done, you need to compile the ClojureScript code into JavaScript. These need to be run with the cljs profile. Using this profile keeps the size of the uberjar for the JVM-based backend smaller. I usually run one or more of these in different terminals or split views:

$ lein with-profile cljs cljsbuild auto main
$ lein with-profile cljs cljsbuild auto renderer-dev
$ lein with-profile cljs cljsbuild auto updater

Alternatively, you use these aliases (see project.clj);

$ lein cljs-main-dev
$ lein cljs-renderer-dev
$ lein cljs-updater-dev

These need to be running in separate terminals, as they watch the file system for changes in auto mode.

Next, you need to compile the SCSS files into CSS:

$ lein sass4clj auto

Usage

Once you have completed all the steps in the previous section, all you need to do is:

$ lein run
$ npm start

Packaging

You can also package the application using the publish script:

$ ./publish.sh -m beta

This script will completely build and package the meo desktop application. It will try to upload the application into an S3 bucket if credentials are in the environment. But even without valid credentials, you will still find the packaged application under ./dist/.

Tests

$ lein test

or

$ lein test2junit

CircleCI Build Status TravisCI Build Status

How to help

Contributions and pull requests are very welcome. Please check the open issues for where help is required the most, and file issues for anything that you find.

License

Copyright © 2016-2018 Matthias Nehlsen. Distributed under the GNU AFFERO PUBLIC LICENSE, Version 3. See separate LICENSE file.

meo's People

Contributors

matthiasn avatar

Watchers

 avatar James Cloos avatar

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.