GithubHelp home page GithubHelp logo

soorya54 / engram Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dev-tails/old-engram

0.0 0.0 0.0 7.34 MB

License: GNU General Public License v3.0

JavaScript 6.77% HTML 1.33% CSS 2.04% TypeScript 68.73% SCSS 3.21% Python 2.05% Ruby 0.08% Swift 14.82% Rust 0.98%

engram's Introduction

engram logo

a hypothetical permanent change in the brain accounting for the existence of memory; a memory trace.

An open source application for quickly gathering thoughts.

Mission

Help educate others (and myself) on how to build software applications.

The core functionality of engram is simply the ability to capture and store text. This has become my defacto "Hello World" application when testing out a new language, library, or framework. Once I feel I have enough knowledge with a specific technology, that code will find it's way into this repository.

Folder Structure

To support this mission, the folder structure is organized to separate the app into major areas.

The backend is currently a REST api built with Node.js on top of the express web framework. I've spent very little energy in this realm, focusing significantly more on frontend clients for now. In the future, I will add new languages and frameworks here.

There are several frontend clients available for engram. Each one may have slightly different functionality based on how far along that project is, or whether the target platform has additional functionality. This helps showcase when it's useful to specifically target a platform vs. building something generic.

This is the original engram client. This is the technology stack I have the most comfort with, which is why I started here. This client powers the offical engram web app.

This is a react-native app built using expo. This is the build used for the Offical Google Play app. The Play Store version will soon be replaced by a native Android application.

This is a Swift 5 native iOS application. This is the client used for the official engram iOS app.

I knew early on I wanted a CLI for engram. engram is about quickly capturing thoughts, and I can think of no other place that is as quick as the command line. The cli is currently built in Rust.

eg is the online enabled version of the CLI. It syncs with the web version of engram so anything captured on the command line can be viewed on your other devices. I wrote an in depth article about the start of this project here.

ego is an offline version of engram. I'm currently using this to learn more about Rust while also writing tutorials about it. Some of this work may get merged in with eg to make it possible to work offline while eventually syncing items. I still believe there is a strong enough case for a fully offline version, so ego should remain as the place to put information you don't want accessing the Internet.

WIP

WIP

Local Development

The primary website https://engram.xyzdigital.com runs the web/react frontend and api for the REST API. engram has primarily developed with Node 14, but should work with future ones as well without issue.

Running the React App

cd clients/web/react
yarn
yarn start

If successful this should open http://localhost:3000 in your browser

Running the API

A local installation of mongodb community server is recommended. If you would prefer to use a hosted mongodb instance, you will just have to update the DB_URL below accordingly.

You will need to create a .env file inside the api folder:

DB_URL=mongodb://localhost:27017/engram
JWT_SECRET={Insert random string of characters}

Then you can start the express server with:

cd api
yarn
yarn start

Resources

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.