{"id":13937973,"url":"https://github.com/mtbarta/monocorpus","last_synced_at":"2025-07-20T00:31:39.354Z","repository":{"id":77861565,"uuid":"135382721","full_name":"mtbarta/monocorpus","owner":"mtbarta","description":"A notepad for software and machine learning","archived":true,"fork":false,"pushed_at":"2019-03-18T00:02:36.000Z","size":9474,"stargazers_count":232,"open_issues_count":9,"forks_count":13,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-11-27T06:37:04.886Z","etag":null,"topics":["developer-tools","machine-learning","note-taking"],"latest_commit_sha":null,"homepage":null,"language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mtbarta.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-05-30T03:24:42.000Z","updated_at":"2024-01-04T16:23:28.000Z","dependencies_parsed_at":"2023-03-04T05:30:37.341Z","dependency_job_id":null,"html_url":"https://github.com/mtbarta/monocorpus","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mtbarta/monocorpus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtbarta%2Fmonocorpus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtbarta%2Fmonocorpus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtbarta%2Fmonocorpus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtbarta%2Fmonocorpus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mtbarta","download_url":"https://codeload.github.com/mtbarta/monocorpus/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtbarta%2Fmonocorpus/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266048518,"owners_count":23868738,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["developer-tools","machine-learning","note-taking"],"created_at":"2024-08-07T23:04:08.593Z","updated_at":"2025-07-20T00:31:34.173Z","avatar_url":"https://github.com/mtbarta.png","language":"Vue","funding_links":[],"categories":["Vue"],"sub_categories":[],"readme":"# MonoCorpus\nhttps://mtbarta.github.io/monocorpus/\n\n**DEPRECATED**   \nUnfortunately, I accepted a job where this project is a conflict of interest. This project will be in maintanence mode from here on out. \n\n***\nMonoCorpus is a tool to record code, notes, and papers during\nthe development of software and machine learning algorithms. It\nlets you lookup previous bugs and relevant notes to quickly solve new problems and bugs.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./notebook.gif\" alt=\"MonoCorpus example\"\n       width=\"654\" height=\"450\"\u003e\n\u003c/p\u003e\n\n## Key Features\n\n* Full Text Search\n* Chronological ordering of notes\n* Title Filters\n* import Arxiv abstracts\n* KaTeX support\n* Markdown support\n* Image support (beta)\n\n## How it Works\n\n**gateway proxying into gRPC**\nMonoCorpus uses Vuejs on the frontend, GraphQL as a gateway layer between HTTP and grpc calls, and golang microservices in the backend.\n\n**async messaging**\nAs 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. \n\n**robust authentication**\nWe use keycloak to provide authentication and authorization of users. Every user is able to enable two-factor auth for their account.\n\nMicroservices:\n* Notes\n  - CRUD functions to Mongo.\n* Search\n  - Async CRUD functions to add notes to Elasticsearch.\n* Gateway\n  - GraphQL interface to notes and search.\n  \n### Setup\n\nMonocorpus should be installed inside of your $GOPATH at `github.com/mtbarta/monocorpus`.\n\ncreate an .env file in `monocorpus/docker`. It should have the following variables:\n```\nENV=dev\nNETWORK=docker\nHOST=localhost\n\nPOSTGRES_DATA_LOC=/data/postgres\nPOSTGRES_USER=loginUserAdmin\nPOSTGRES_PASSWORD=adminpw\n\nMONGO_DATA_LOC=/data/mongo\nSEARCH_DATA_LOC=/data/es\n\nKEYCLOAK_USER=admin\nKEYCLOAK_PASSWORD=admin\n```\n\nThere are a couple snags that I've run into deploying this:\n\n1. 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.\n3. Elasticsearch may need permissions to write to your elasticsearch data directory. Run `chown -R 1000:1000 es` to fix this.\n4. 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.\n5. `docker-compose up -d` to bring the whole system up.\n\n## Notable Dependencies\n\nSearch - [Elasticsearch](https://github.com/elastic/elasticsearch)\n\nProxy -  [Traefik](https://github.com/containous/traefik)\n\nAuthentication - [Keycloak](https://github.com/keycloak/keycloak)\n\n## Contributors\n\n@mtbarta\n\n## How to Contribute\n\nPlease 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.\n\nPlease rebase PRs if necessary -- https://github.com/edx/edx-platform/wiki/How-to-Rebase-a-Pull-Request\n\n## License\n\nGNU AGPLv3\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmtbarta%2Fmonocorpus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmtbarta%2Fmonocorpus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmtbarta%2Fmonocorpus/lists"}