# identity Identity is an open-source application that helps you save your most relevant memories. ## Rationale Identity is a project that initially started as an app whose purpose was to store music you like (or used to like) for future use in treatment for conditions such as dementia. Over time, the idea evolved and is now a general-purpose memory-saving app. ## Projects * `identity-web`. The web app that interacts with the Identiy API. * `identity-api`. The Identity API, takes care of storing user data. * `asset-api`. The Asset API, takes care of storing user-generated assets. ## Installation and building The Identity project is composed by a web-app and two servers. In the future, Docker containers may be built to ease the installation of this project. ### Development and local testing #### `identity-web` 1. Copy the `env.example` file: `cp .env.example .env` 2. Run `yarn` to install the dependencies. * You may need to [enable Corepack](https://nodejs.org/api/corepack.html). 3. Run `yarn dev` and open the specified URL. 4. You're ready to go! Any changes should be reflected in real time. #### `identity-api` 1. Copy the `env.example` file: `cp .env.example .env` 2. Run `yarn` to install the dependencies. * You may need to [enable Corepack](https://nodejs.org/api/corepack.html). 3. Run `yarn start` to start the server. * **Note:** The `asset-api` server **must** be running before this command is run. [More info](./docs/asset-implementation.md). 4. You're ready to go! You will need to restart the server manually when you make changed (unless you use something like [Nodemon](https://www.npmjs.com/package/nodemon)). #### `asset-api` 1. Copy the `.env.example` file: `cp .env.example .env` 2. Run `yarn` to install the dependencies. * You may need to [enable Corepack](https://nodejs.org/api/corepack.html). 3. Run `yarn start` to start the server. * You may need to create an empty folder at `$/asset-api/.keys`. 4. You're ready to go! You will need to restart the server manually when you make changed (unless you use something like [Nodemon](https://www.npmjs.com/package/nodemon)). ### Building and running #### Building `identity-web` 1. Copy and update the `env.example` file: `cp .env.example .env` 2. Run `yarn` to install the dependencies. * You may need to [enable Corepack](https://nodejs.org/api/corepack.html). 3. Run `yarn preview` to check that everything works properly. 4. Modify the `svelte.config.js` file to deploy to your desired environment. 5. Run `yarn build` to generate the SPA build. * The build will be placed at the `build/` folder. ## License * `asset-api` and `identity-api` are licensed under the [AGPL 3.0 license](https://www.gnu.org/licenses/agpl-3.0.en.html). * `identity-web` is licensed under the [MPL 2.0 license](https://www.mozilla.org/en-US/MPL/). * **Note:** Building `identity-web` and hosting it falls under Section 3.2. ## Citations 1. Van de Winckel, A., Feys, H., De Weerdt, W., & Dom, R. (2004). Cognitive and behavioural effects of music-based exercises in patients with dementia. Clinical Rehabilitation, 18(3), 253-260. https://doi.org/10.1191/0269215504cr750oa 2. The dementia guide: Living well after your diagnosis. (2021, April 16). Alzheimer’s Society. https://www.alzheimers.org.uk/get-support/publications-factsheets/the-dementia-guide