Skip to content

Commit

Permalink
Merge pull request #589 from codeforpdx/Development
Browse files Browse the repository at this point in the history
Version Update from v0.11.0 to v0.12.0
  • Loading branch information
leekahung committed Mar 6, 2024
2 parents 1db5416 + 7fd0342 commit 27165c3
Show file tree
Hide file tree
Showing 81 changed files with 3,189 additions and 2,125 deletions.
13 changes: 2 additions & 11 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,8 @@ module.exports = {
jsx: true
}
},
plugins: [
'react',
'prettier',
'jsdoc'
],
extends: [
'plugin:react/recommended',
'airbnb',
'prettier',
'plugin:jsdoc/recommended'
],
plugins: ['react', 'prettier', 'jsdoc'],
extends: ['plugin:react/recommended', 'airbnb', 'prettier', 'plugin:jsdoc/recommended'],
rules: {
'react/function-component-definition': ['error', { namedComponents: 'arrow-function' }],
'react/prop-types': 'off',
Expand Down
45 changes: 28 additions & 17 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,38 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
about: Create a bug report
title: '[Bug Report] - Your Title Here'
labels: 'bug'
assignees: ''

---

### Bug Description:
Please provide a DETAILED description of the bug.
### Describe the bug:
A clear and concise description of what the bug is including error messages.

### Expected behavior:
A clear and concise description of what you expected to happen.

### Actual Behavior:
Describe what actually happened instead of the expected behavior.

### Reproduction Steps:
**1.**
**2.** If needed, delete if not
**3.** If needed, delete if not
### Screenshots:
If applicable, add screenshots to help explain your problem.

### Expected Behavior:
What should have happened if the bug didn't occur.
### To Reproduce:
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

### Screenshots (If applicable):
If possible, add screenshots to help explain the problem.
### Desktop (please complete the following information):
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]

### Additional Context (optional):
Add any other context about the problem here.
### Possible Fix:
If you have a suggestion for how to fix the bug, please provide details here.

### Possible Solution (optional):
If you have a suggestion on how to fix this bug.
### Additional context:
Add any other context about the problem here.
32 changes: 22 additions & 10 deletions .github/ISSUE_TEMPLATE/enhancement_request.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,34 @@
---
name: Enhancement request
about: Suggest an enhancement for this project
title: 'Enhancement: [Your Title Here]'
title: '[Enhancement] - Your Title Here'
labels: enhancement
assignees: ''
---

### Describe the Current Behavior/Feature:
Provide a clear and concise description of the current behavior or feature.

### Proposed Behavior/Feature:
A clear and concise description of the enhancement you want.
Describe the enhancement you are proposing. Clarify which existing feature this enhancement relates to, and the specific changes or improvements you want to see.

### Rationale:
Please outline why this enhancement is needed and how it will benefit the project.
How does it improve the current functionality? Discuss any limitations or problems with the existing feature that your suggestion aims to resolve.

### Proposed Changes:
Detail the changes you propose to make to the existing feature. Include:

- Specific modifications or additions to functionality
- User interface alterations, if applicable
- Changes to input/output behavior
- Any adjustments to configurations or settings

### Possible Drawbacks:
Discuss any potential drawbacks or negative impacts this enhancement might have, including:

- Complexity increase
- Potential conflicts with other features or planned developments
- Migration or compatibility issues

### Proposed Implementation (if applicable):
Provide a detailed low level description of how you propose the enhancement should be implemented.
### Alternatives Considered:
Mention any alternative solutions or enhancements you've considered. Why were they not chosen or why are they less desirable than your proposal?

### Additional context:
Add any other context or screenshots about the enhancement request here.
### Additional Context:
Add any other context or screenshots about the enhancement request here.
22 changes: 10 additions & 12 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,23 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
title: '[Feature Request] - Your Title Here '
labels: 'new feature'
assignees: ''

---

### Feature Description:
Please provide a DETAILED description of the proposed feature.
Briefly describe the feature.

### Use Case:
Explain when and why this feature would be used. Try to include as much detail as possible.
### Problem it Solves:
Describe the problem that this feature would solve. Explain any current workaround and how this will solve it.

### Proposed Solution:
If you have a solution in mind, please outline it here.

### Alternative Solutions:
If there are alternative ways to solve this problem, please list them here.
If you have a specific solution in mind, outline it here. Include as many details as possible about how this feature should work and any considerations that need to be taken into account.

### Screenshots (if applicable):
Include any screenshots that may be helpful.
### Alternatives Considered:
A clear and concise description of any alternative solutions or features you've considered and why they could or could not work.

### Additional Context:
Please provide any other information that might be helpful.
Add any other context or screenshots about the feature request here. If you have mock-ups, prototypes, or any visual aids that could help illustrate the feature, please include them.
6 changes: 3 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 16
node-version: 18
cache: npm

- name: Build
Expand All @@ -47,7 +47,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 16
node-version: 18
cache: npm
- name: Install Dependencies
run: npm ci
Expand All @@ -67,7 +67,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 16
node-version: 18
cache: npm
- name: Install Dependencies
run: npm ci
Expand Down
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
16.20.2
lts/Hydrogen
2 changes: 1 addition & 1 deletion Dockerfile.react
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Stage 1: Build the React app
FROM node:16 AS build
FROM node:18 AS build

WORKDIR /app

Expand Down
128 changes: 74 additions & 54 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,97 +15,117 @@

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 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.

The [PASS wiki](https://github.com/codeforpdx/PASS/wiki) contains detailed information of all things PASS including contribution guidelines, tech stack, information on SOLID, ect...
This document is intended to be a crash course to get you up and running. The [PASS wiki](https://github.com/codeforpdx/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](https://github.com/codeforpdx/PASS/graphs/contributors
).
PASS is currently in development working towards MVP release by generous efforts from [our contributors](https://github.com/codeforpdx/PASS/graphs/contributors).

## Contents

1. [Setup Instructions](#1-setup-instructions)
2. [Project Overview](#2-project-overview)
3. [Contribution Guidelines](#3-contribution-guidelines)
4. [Code of Conduct](#4-code-of-conduct)
1. [Setup Instructions](#1-quick-setup-instructions)
2. [Project Overview](#2-project-overview)
3. [Contribution Guidelines](#3-contribution-guidelines)
4. [Code of Conduct](#4-code-of-conduct)
5. [PASS Wiki](#5-pass-wiki)

## 1. Setup Instructions
## 1. Quick Setup Instructions

- ### Prerequisites
**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.

Currently we require Node version 16.20.2 and NPM for our package manager. We recommend managing node and npm using Node Version Manager (NVM). To do so:
- ### Getting the Code

1. Clone the git repository:

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

- ### Setting up Node

_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.

- For Mac, Linux, and other POSIX users: https://github.com/nvm-sh/nvm
- For Windows users: https://github.com/coreybutler/nvm-windows
- For Mac, Linux, and other POSIX users: [https://github.com/nvm-sh/nvm](https://github.com/nvm-sh/nvm)
- For Windows users: [https://github.com/coreybutler/nvm-windows](https://github.com/coreybutler/nvm-windows)

2. Install node version 16.20.2:
```
nvm install 16.20.2
```
3. Use that node version:
```
nvm use 16.20.2
```
4. Check that node and npm are set up:
2. If you don't have node version 18, install node version 18 by running:
```bash
nvm install 18
```
This will download node 18 and set it up for use
3. Check that node and npm are set up:
```bash
node -v
npm -v
```
If either of those commands error, node has not been installed correctly.

- ### Clone and Install Dependencies
1. Clone the git repository:
```
git clone https://github.com/codeforpdx/PASS.git
```bash
npm -v
```
2. Install project dependencies:
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.
4. 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
```bash
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.

- ### Set Up and Run the Project

1. Install project dependencies:

```bash
npm install
```
3. Install the pre-commmit prettier, linter, and test hooks.
```
npm run prepare
```
4. Run the project:
```
npm run dev
```
5. 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.

- ### Setting up a Development Pod Server
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.
2. Configure the project environment:
```bash
cp env.template .env
```

1. Clone and install dependencies. [See previous section](#clone-and-install-dependencies)
3. Run the following command:
```bash
npm start
```
To start up everything needed to run PASS.

2. In the project's root directory, copy the `env.template` file into a `.env` file. In bash you can use this command:
4. Navigate to PASS and set up an account.

```bash
cp env.template .env
```
By default, PASS launches at [http://localhost:5173](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!

3. Run `npm run podserver` to launch the pod server. The server will begin listening on `http://localhost:3000`, and will create a folder in the PASS project folder called `local_temp_server_files`. You can find all server and pod files there.
- ### Setting up Git Hooks for development

4. 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.
We require all code contributed to the project to pass through our git hooks. To set them up, do the following:

5. Launch PASS with `npm run dev`. Click the `Login` button on the home page. If everything has been set up right, you should be redirected to your local pod server to finish login.
1. Install the pre-commmit prettier and linter hooks.

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`
```bash
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](https://solidproject.org/) 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.
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](https://solidproject.org/) 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
- Start by checking out the detailed on-boarding [CONTRIBUTING.md](./docs/CONTRIBUTING.md).
- Join our [Discord](https://discord.gg/Ts923xaUYV) and self assign roles as you see fit. [![Discord](https://img.shields.io/discord/1068260532806766733)](https://discord.gg/Ts923xaUYV)
- Start by checking out the detailed onboarding [in the Wiki](https://github.com/codeforpdx/PASS/wiki/Development#contribution-guidelines).
- Join our [Discord](https://discord.gg/Ts923xaUYV) and self-assign roles as you see fit. [![Discord](https://img.shields.io/discord/1068260532806766733)](https://discord.gg/Ts923xaUYV)
- Request git-hub access on Discord in the [github-access-request](https://discord.com/channels/1068260532806766733/1078124139983945858) channel of the General category.
## 4. Code of Conduct
- [Code for PDX code of conduct](https://github.com/codeforpdx/codeofconduct/blob/master/README.md)
- [CODEPDX code of conduct](https://github.com/codeforpdx/codeofconduct/blob/master/README.md)
## 5. PASS Wiki
[Visit the wiki for more information on every aspect of the project. Feature set, architecture, tooling, etc](https://github.com/codeforpdx/PASS/wiki)
**[⬆️ Back to Top](#pass---personal-access-system-for-services)**
Loading

0 comments on commit 27165c3

Please sign in to comment.