All Projects → mtbarta → Monocorpus

mtbarta / Monocorpus

Licence: agpl-3.0
A notepad for software and machine learning

Projects that are alternatives of or similar to Monocorpus

Boostnote.next
Boost Note is a powerful, lightspeed collaborative workspace for developer teams. Forum (New!): https://github.com/BoostIO/BoostNote-App/discussions
Stars: ✭ 2,682 (+1046.15%)
Mutual labels:  note-taking, developer-tools
projectpad2
Projectpad allows to manage secret credentials and server information that you need to handle as a software developer or sysadmin.
Stars: ✭ 62 (-73.5%)
Mutual labels:  developer-tools, note-taking
Sfpowerkit
A Salesforce DX Plugin with multiple functionalities aimed at improving development and operational workflows
Stars: ✭ 214 (-8.55%)
Mutual labels:  developer-tools
Meemo
Meemo - Your personal notes
Stars: ✭ 227 (-2.99%)
Mutual labels:  note-taking
Awesome Ci
List of Continuous Integration services
Stars: ✭ 2,737 (+1069.66%)
Mutual labels:  developer-tools
Ios
Unofficial app for Swift Evolution
Stars: ✭ 217 (-7.26%)
Mutual labels:  developer-tools
Tomboy Ng
Next generation of Tomboy
Stars: ✭ 226 (-3.42%)
Mutual labels:  note-taking
Yalc
Work with yarn/npm packages locally like a boss.
Stars: ✭ 3,155 (+1248.29%)
Mutual labels:  developer-tools
Opentouryo
”Open棟梁”は、長年の.NETアプリケーション開発実績にて蓄積したノウハウに基づき開発した.NET用アプリケーション フレームワークです。 (”OpenTouryo” , is an application framework for .NET which was developed using the accumulated know-how with a long track record in .NET application development.)
Stars: ✭ 233 (-0.43%)
Mutual labels:  developer-tools
Devutils App
Offline Toolbox for Developers
Stars: ✭ 2,735 (+1068.8%)
Mutual labels:  developer-tools
Hack
A typeface designed for source code
Stars: ✭ 14,543 (+6114.96%)
Mutual labels:  developer-tools
Cargo Modules
A cargo plugin for showing a tree-like overview of a crate's modules.
Stars: ✭ 222 (-5.13%)
Mutual labels:  developer-tools
React Monocle
A developer tool to visualize a React application's component hierarchy.
Stars: ✭ 2,440 (+942.74%)
Mutual labels:  developer-tools
Archivy
Archivy is a self-hosted knowledge repository that allows you to safely preserve useful content that contributes to your own personal, searchable and extendable wiki.
Stars: ✭ 2,746 (+1073.5%)
Mutual labels:  note-taking
Systemjs Hot Reloader
reloads your modules as needed so that you can have satisfyingly fast feedback loop when developing your app
Stars: ✭ 215 (-8.12%)
Mutual labels:  developer-tools
Audion
Audion (Web Audio Inspector) is a Chrome extension that adds a Web Audio panel to Developer Tools. This panel visualizes the web audio graph in real-time and lets users inspect nodes.
Stars: ✭ 230 (-1.71%)
Mutual labels:  developer-tools
Splitgraph
Splitgraph command line client and python library
Stars: ✭ 209 (-10.68%)
Mutual labels:  developer-tools
Rustplayground
Quickly test Rust code on macOS
Stars: ✭ 222 (-5.13%)
Mutual labels:  developer-tools
Rested
A REST client for browsers
Stars: ✭ 225 (-3.85%)
Mutual labels:  developer-tools
Wakapi
📊 A minimalist, self-hosted WakaTime-compatible backend for coding statistics
Stars: ✭ 232 (-0.85%)
Mutual labels:  developer-tools

MonoCorpus

https://mtbarta.github.io/monocorpus/

DEPRECATED
Unfortunately, I accepted a job where this project is a conflict of interest. This project will be in maintanence mode from here on out.


MonoCorpus is a tool to record code, notes, and papers during the development of software and machine learning algorithms. It lets you lookup previous bugs and relevant notes to quickly solve new problems and bugs.

MonoCorpus example

Key Features

  • Full Text Search
  • Chronological ordering of notes
  • Title Filters
  • import Arxiv abstracts
  • KaTeX support
  • Markdown support
  • Image support (beta)

How it Works

gateway proxying into gRPC MonoCorpus uses Vuejs on the frontend, GraphQL as a gateway layer between HTTP and grpc calls, and golang microservices in the backend.

async messaging As notes are written and sent to the backend, we save them and then send them to a messaging platform for other services to pick up asynchronously.

robust authentication We use keycloak to provide authentication and authorization of users. Every user is able to enable two-factor auth for their account.

Microservices:

  • Notes
    • CRUD functions to Mongo.
  • Search
    • Async CRUD functions to add notes to Elasticsearch.
  • Gateway
    • GraphQL interface to notes and search.

Setup

Monocorpus should be installed inside of your $GOPATH at github.com/mtbarta/monocorpus.

create an .env file in monocorpus/docker. It should have the following variables:

ENV=dev
NETWORK=docker
HOST=localhost

POSTGRES_DATA_LOC=/data/postgres
POSTGRES_USER=loginUserAdmin
POSTGRES_PASSWORD=adminpw

MONGO_DATA_LOC=/data/mongo
SEARCH_DATA_LOC=/data/es

KEYCLOAK_USER=admin
KEYCLOAK_PASSWORD=admin

There are a couple snags that I've run into deploying this:

  1. the system needs to be aware of the host name. This is for proper routing of calls, decryption of tokens, and ACME support in traefik.
  2. Elasticsearch may need permissions to write to your elasticsearch data directory. Run chown -R 1000:1000 es to fix this.
  3. Keycloak's realm requires knowledge of valid redirect urls. If you are not running on localhost, this needs to be changed. You can boot up keycloak, and go it it's endpoint at /auth/admin and login with the above user and password. https://www.keycloak.org/docs/latest/server_admin/index.html#_clients has more information about where to navigate to change client urls.
  4. docker-compose up -d to bring the whole system up.

Notable Dependencies

Search - Elasticsearch

Proxy - Traefik

Authentication - Keycloak

Contributors

@mtbarta

How to Contribute

Please feel free to send me a PR. There's a lot of low-hanging fruit across this project -- refactoring, documentation, testing, new features. Let me know if there's something you want to work on and we can discuss.

Please rebase PRs if necessary -- https://github.com/edx/edx-platform/wiki/How-to-Rebase-a-Pull-Request

License

GNU AGPLv3

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].