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.
PASS is currently in Development heading towards Minimum Viable Product
- Setup Instructions
- Project Overview
- Contribution Guidelines
- Contributors
- Tech Stack and Additional Resources
- Code of Conduct
-
Currently we require Node version 16 or higher and NPM for our package manager. Most places recommend using a node version manager to install node and npm. To proceed using NVM perform the following..
- Download NVM for your system.
- For Mac, Linux, and other POSIX users: https://github.com/nvm-sh/nvm
- For Windows users: https://github.com/coreybutler/nvm-windows
- Install node version 16:
nvm install 16
- Use that node version:
nvm use 16
- Check that node and npm are set up:
If either of those commands error, node has not been installed correctly.
node -v npm -v
-
Clone the git repository:
git clone https://github.com/codeforpdx/PASS.git
-
Install project dependencies:
npm install
-
Run the project:
npm run dev
-
PASS should launch at
http://localhost:5173
. You can now visit that url, and sign into a pod hosted at the OIDC provider of your choice.
-
PASS is able to connect to any solid-spec compliant pod server. However, for testing, it's recommended that you run a server locally. PASS provides tools to make this easy to do.
-
Clone and install dependencies. See previous section
-
In the project's root directory, copy the
env.template
file into a.env
file. In bash you can use this command:cp env.template .env
-
Run
npm run podserver
to launch the pod server. The server will begin listening onhttp://localhost:3000
, and will create a folder in the PASS project folder calledlocal_temp_server_files
. You can find all server and pod files there. -
Open a browser and navigate to
http://localhost:3000
. You should encounter a screen asking you to set up the server and create an account. Create your first account, and your server will be ready for development. -
Launch PASS with
npm run dev
. Click theLogin
button on the home page. If everything has been set up right, you should be redirected to your local pod server to finish login.
Note: The npm run podserver
command will launch a server that stores documents on your local file system. If you don't want to store documents, and want all server data to be deleted on shutdown, you can run npm run podserver:temp
Further information can be found in CONTRIBUTING.md & docs/README.md
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 individuals pod to help process housing assistance applications.
- Individual/Client - housing insecure person using services to interact with organizations.
- Organization - housing agencies, landlords, government agencies that will be requesting information from individuals.
- Pod/Wallet - decentralized data/document storage built with Solid API. Individuals and organizations will have certain functionality within their pods.
- Folder/Container - referring to the URI location of document data in ttl files using Solid API with Inrupt's library.
- ACL - Access Control List is used to manage Solid Pods by allowing users to control who can access and modify their data.
- Individual/Client
- Upload and Maintain Documents
- Able to share documents
- Can copy verified documents into pod from organization(s)
- Messaging to organizations
- Organization
- Can request and review documents
- Can create verified documents
- Can place files into clients pod with permission
- Able to share verified documents with clients
- Will have several users per organization
- User registers for a WebID (similar to an email address)
- User authorizes applications and other users to read/write/control data in pod
- User data remains in their pod (which is associated to WebID)
- Full product road map here
- Start by checking out the detailed on-boarding CONTRIBUTING.md.
- Join our Discord and self assign roles as you see fit.
- Request git-hub access on Discord in the github-access-request channel of the General category.
Development Team | UI Team | UX Team | Project Management Team |
---|---|---|---|
Jared K. * | Andy W. * | Gabby P. * | Florian S. * |
Kevin M. | Scott B. * | Kyle B. * | Danica B. * |
Ka Hung L. * | Zack | Laura U. * | Wilfred P. * |
Greg W. | Nicholas G. | Shelby P. | Katharine |
Emily S. | |||
Ben C. * | |||
Tim S. * | |||
Brian H. * | |||
Georgia | |||
Natalie M. | |||
Grac F. |
* Active Contributors
- Details on tech used and additional resources in resources.md