Giter Site home page Giter Site logo

mattburnett-repo / generic-fse-code-challenge Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 5.24 MB

This repo is for an ongoing, generic personal project. It contains frontend and backend code for a generic FSE code challenge.

JavaScript 81.44% TypeScript 7.45% HTML 0.63% CSS 9.52% Dockerfile 0.97%

generic-fse-code-challenge's Introduction

repo header

Generic Full Stack Engineer Code Challenge

This repo is for an ongoing personal project. It contains frontend, backend and authServer code for a generic FSE code challenge. The project retrieves and displays insurance policy / customer records.

It uses React (Frontend) to connect to an ApolloGraphQL server (Backend). The ApolloGraphQL server connects to a remote REST API datastore. Data is pulled from the datastore, through ApolloGraphQL and then displayed to the user as a React UI.

Basic authentication is handled by AuthServer. Authentication is handled separately from application data.

Technology used

  • Authentication
  • Frontend
    • React
    • React-Table
    • React-Date-Picker
    • react-flash-message
    • Apollo graphQL Client
    • Tailwind CSS
    • Jest / React Testing Library
  • Backend
    • ApolloGL Server / datasource-rest
    • Datastore
      • PostgreSQL
      • Node JS / Express / Swagger/OpenAPI
    • Mocha / Supertest / Chai

Getting Started

Installation from the repos

Docker containers

  • Clone the repo and create the .env files for frontend, backend and authServer.

  • You can run Docker containers for the frontend, the backend and the authServer. Instructions are in the respective README.md files

  • You can also run the whole thing from the project root directory, after you create the .env files for each container (see READMEs for authServer / backend / frontend for how to do this. TLDR: Copy .sample-env to .env for each module). You won't be able to use OAuth to log in, but you can log in / register using username / password and see the app.

    docker-compose -p generic-fse up -d

    and then run

    localhost:3000

    in a browser window. It may take a few moments to load.

    Stop the Docker containers with:

    docker-compose -p generic-fse down

Tests

  • Tests for frontend and backend are located in their respective repositories

To Do

  • Google Cloud Deployment
    • Develop CI/CD workflow as a separate effort / sandbox (similar to authSandbox)
  • Logging
  • Expire the auth token / localStorage ...
    • Combine with 'Remember Me' functionality
  • Browse / Search
  • More TypeScript
  • Refinements to JWT authorization
    • Add authLevel to token
    • Check authLevel within the app, for module-level access
  • Investigate / resolve data caching
    • React Table keeps a memoized copy of the data
    • Apollo QL keeps a cache of data
      • use the Apollo QL version

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.