In this repo you can find links to all documentation required. For those working on the project who need real log ins and production env vars, please refer to the Admin issue #1 and reach out to ucdigital@hyde-housing.co.uk for access.
For the full tech stack approach please refer to https://www.notion.so/Tech-Stack-External-Services-Deployment-Recommendation-8169f65c04664f75839f678143559cd1
As a summary:
Package | Logo | Description |
---|---|---|
ReactJS | JavaScript library that is used for building user interfaces specifically for single-page applications. | |
React router | It keeps our UI in sync with the URL, dynamic route matching, and location transition handling. | |
Axios | Making HTTP requests to fetch or save data and connect client-side with server-side | |
Emotion | Style system using ES6 and CSS | |
Antd | Adaptable system of components and tools that support the best practices of user interface design and enable faster development | |
Yup | JavaScript schema builder for value parsing and validation | |
i18next | JavaScript internationalization framework with React support |
Package | Logo | Description |
---|---|---|
NodeJS | JavaScript runtime environment used to build our server | |
ExpressJS | back end web application framework for Node.js to build our API | |
pg | Non-blocking PostgreSQL client for Node.js to contact to our Database | |
AWS | to store and retrieve images data | |
Sendgrid | cloud-based SMTP provider, email service | |
Sentry | Sentry's SDKs enable automatic reporting of errors and exceptions. | |
Yup | JavaScript schema builder for value parsing and validation | |
Momentjs | JavaScript library which helps is parsing, validating, manipulating and displaying date/time in JavaScript |
How to get a copy of the project up and running on your local machine.
Please ensure you have this software installed and running on your local machine before you attempt to run this webapp.
Node (via nvm recommended) see: https://github.com/creationix/nvm
Setup
$ cd universal-credit-support
$ cd client && npm i && cd ..
$ cd server && npm i && cd ..
$ npm i
NODE_ENV=development
APP_URL=http://localhost:3000
PORT=8080
SECRET=[ENTER YOUR SECRET HERE]
# POSTGRES
DATABASE_URL=[ENTER DB URL]
DATABASE_URL_TEST=[ENTER TEST DB URL]
# AWS
BUCKET = [YOUR AWS BUCKET]
BUCKET_REGION = [YOUR AWS BUCKET REGION]
AWS_ACCESS_KEY_ID = [YOUR AWS ACCESS KEY ID]
AWS_SECRET_ACCESS_KEY = [YOUR AWS ACCESS KEY]
AWS_REGION=eu-west-2
# SENDGRID
SENDER_EMAIL= [EMAIL ADDRESS TO SEND EMAILS AS]
SENDGRID_API_KEY= [YOUR SENDGRID API KEY]
$ npm run build:db
$ npm run dev
If you notice anything wrong with the instructions or the project isn't running as expected don't hesitate to raise an issue and we'll try to figure it out.
To run tests for the client:
$ npm run test:client
To update snapshots when tests run:
$ npm run test:client -- --updateSnapshot
To run tests for the server:
$ npm run test:server
If you are interested in contributing to the codebase please reach out to ucdigital@hyde-housing.co.uk