codeforpdx / PASS

PASS project - with HMIS module integration
MIT License
35 stars 27 forks source link

PASS - Personal Access System for Services

PASS logo

License Discord Pull Requests Issues Commits Build status Top Language Contributors Latest Commit

Welcome! πŸ‘‹πŸ‘‹πŸΏπŸ‘‹πŸ½πŸ‘‹πŸ»πŸ‘‹πŸΎπŸ‘‹πŸΌ

PASS is an open source digital wallet for providing home-insecure individuals a safe place to store documents within their control. PASS additionally aims to assist caseworkers with processing and providing documents needed to complete the housing-assistance application process.

This document is intended to be a crash course to get you up and running. The PASS wiki is the place to go for detailed information of all things PASS including contribution guidelines, tech stack, information on SOLID, etc...

PASS is currently in development working towards MVP release by generous efforts from our contributors.

Contents

  1. Setup Instructions
  2. Project Overview
  3. Contribution Guidelines
  4. Code of Conduct
  5. PASS Wiki

1. Quick Setup Instructions

Note: All commands in this document are for bash. If you are using an incompatible shell like CMD or powershell, you may need to use different commands.

  1. Clone the git repository:

    git clone https://github.com/codeforpdx/PASS.git
  2. Enter the project folder:
    cd PASS

If you already have node 18 installed on your system, you may skip this section.

Currently, we require Node version 18.19.x and NPM for our package manager. We recommend using Node Version Manager (NVM) to install Node and npm. To proceed using NVM, perform the following:

  1. Download NVM for your system.
  1. If you don't have node version 18, install node version 18 by running:

    nvm install 18

    This will download node 18 and set it up for use

  2. Check that node and npm are set up:

    node -v
    npm -v

    The node version should be 18.19 (and maybe third decimal) and the npm version should be 10.2 (and maybe a third decimal). If they are not these versions, or if either of those commands cause an error, node has not been installed correctly.

  3. We include a .nvmrc in the root folder of the project, which contains our target node version. We update this version periodically. If you're ever not sure of what node version you should be using, run

    nvm use 

    to be synced with the project. You may receive warning messages in the terminal if the verion is not installed. Follow the messages to resolve the issues.

  1. Install project dependencies:

    npm install
  2. Configure the project environment:

    cp env.template .env
  3. Run the following command:

    npm start

    To start up everything needed to run PASS.

  4. Navigate to PASS and set up an account.

    By default, PASS launches at http://localhost:5173 on your local machine. Navigate to that screen, then click the signup button to create a pod and web ID for yourself. Then return to the homepage and log in. Follow all prompts that appear, and you will be up and running with PASS!

We require all code contributed to the project to pass through our git hooks. To set them up, do the following:

  1. Install the pre-commmit prettier and linter hooks.

    npm run prepare

2. Project Overview

In Portland, housing-insecure individuals struggle to maintain documents often required to receive government and/or non-profit services. With PASS, we are building out an application to enable housing-insecure individuals to store their personal documents in decentralized data stores, called Pods. PASS will also provide a platform for organizations to assist with providing and processing documents required for housing assistance. Using Solid Data Pods individuals will have control over which organizations and applications can access their data. Verified organizations will be able to use PASS to request data from an individual and/or add documents (such as references or invoices) to an individual's Pod to help process housing assistance applications.

3. Contribution Guidelines

4. Code of Conduct

5. PASS Wiki

Visit the wiki for more information on every aspect of the project. Feature set, architecture, tooling, etc

⬆️ Back to Top