From df557ec2b94892064531162d6b221c646804eb15 Mon Sep 17 00:00:00 2001 From: Jason Kulatunga Date: Fri, 21 Jun 2024 10:16:25 -0700 Subject: [PATCH] update Contributing docs. --- CONTRIBUTING.md | 76 ++++++++++++++++++++++++------------------------- 1 file changed, 37 insertions(+), 39 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d3c51e59..6edf0b80 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,7 +12,7 @@ Fasten is made up of a handful of different components. Here's a summary of the - Angular `v14.1.3` **Backend** -- Go `v1.18.3` +- Go `v1.22.1` **Misc** - Docker `v20.10.17` @@ -105,9 +105,11 @@ The following URL's and credentials may be helpful as you're developing - http://localhost:9090/web/dashboard - WebUI ### Credentials -- WebUI: - - username: `testuser` - - password: `testuser` + +Fasten stores all user data locally, including your account information. That means on first start you'll need to register a new account. +Once you've done that, you'll want to go to the Sources tab and connect a healthcare provider. + +See [Connecting a new Source](https://docs.fastenhealth.com/getting-started/sandbox.html#connecting-a-new-source) for credentials to use. # Source Code Folder Structure @@ -151,44 +153,45 @@ The Fasten source code is organized into a handful of important folders, which w │   │   │   │   ├── fasten-db.service.ts # db service, used to communicate with CouchDB database │   │   │   │   ├── lighthouse.service.ts # api service, used to communicate with auth-gateway (Lighthouse) │   │   │   │   └── toast.service.ts # notifications service, used to send notifications -│   │   │   └── workers -│   │   │   ├── queue.service.spec.ts -│   │   │   ├── queue.service.ts # queue service, used to coordinate background work -│   │   │   └── source-sync.worker.ts # background job (web-worker) that syncs all FHIR resources from healthcare provider │   │   ├── lib # root directory for libraries -│   │   │   ├── README.md -│   │   │   ├── conduit # Conduit Library - HealthCare provider communication layer (FHIR protocol) -│   │   │   │   ├── fhir # contains healthcare provider specific FHIR clients -│   │   │   ├── database # Database Library - PouchDB/CouchDB client, compatible with web-worker and browser env -│   │   │   │   ├── plugins -│   │   │   │   └── pouchdb_repository.ts -│   │   │   ├── models -│   │   │   │   ├── database # Classes used to store data in CouchDB -│   │   │   │   ├── fasten -│   │   │   │   └── lighthouse # Classes used to communicate with Lighthouse API -│   │   │   └── utils │   │   ├── styles.scss # Main sylesheet ``` ## Backend -The backend is incredibly simple (by design). The hope is to remove it completely if possible, allowing Fasten to be served by -a CDN or minimal Nginx deployment. ```tree -├── backend -│   ├── cmd -│   └── pkg -│   ├── config -│   ├── database # contains CouchDB client, allowing creation of new Users (and associated databases) -│   ├── errors -│   ├── models -│   └── web -│   ├── handler # contains code for API endpoints -│   │   ├── auth.go # authentication endpoints (create new user) -│   │   ├── cors_proxy.go # CORS proxy/relay for communicating with healthcare providers who do not support CORS -│   │   ├── couchdb_proxy.go # reverse proxy for CouchDB api, allowing for database API to be exposed (with limitations) -│   │   └── metadata.go # API endpoint returning metadata for healthcare providers + +backend +├── cmd +│   └── fasten +│   └── fasten.go +├── pkg +│   ├── auth +│   ├── config +│   ├── constants.go +│   ├── database # contains SQLite Database Client +│   │   ├── migrations # contains database migrations +│   ├── event_bus # contains event bus for pub/sub in UI +│   ├── models # contains models for application +│   │   ├── database # contains database models, generated using Jennifer and supports search parameter extraction using FHIRPath.js to SQLite columns +│   │   │   ├── README.md +│   │   │   ├── choiceTypePaths.json +│   │   │   ├── fhirpath.min.js +│   │   │   ├── generate.go +│   │   │   ├── interface.go +│   │   │   ├── search-parameters.json +│   │   │   ├── searchParameterExtractor.js +│   │   │   ├── searchParameterExtractor_test.go +│   │   │   └── utils.go +│   ├── version +│   └── web +│   ├── handler # contains code for API endpoints +│   ├── middleware # contains middleware for API endpoints +│   └── server.go +└── resources + ├── related_versions.go # contains tools that help extract verion infromation for binaries + └── related_versions.json ``` ## Distribution/Docker @@ -198,16 +201,11 @@ a CDN or minimal Nginx deployment. ├── Dockerfile # dockerfile for "all-in-one" image, containing frontend, backend & database ├── docker │   ├── README.md -│   ├── couchdb -│   │   ├── Dockerfile # dockerfile for "couchdb" only image, used for development -│   │   └── local.ini │   └── rootfs # filesystem configs, used in Dockerfiles to setup s6-overlay service manager │   └── etc │   ├── cont-init.d │   │   ├── 01-timezone -│   │   └── 50-couchdb-init │   └── services.d -│   ├── couchdb │   └── fasten ```