Giter Site home page Giter Site logo

twxia / fullstackengineerchallenge Goto Github PK

View Code? Open in Web Editor NEW

This project forked from paypay/fullstackengineerchallenge

1.0 1.0 0.0 316 KB

Code Challenge, Review System

Home Page: https://wonderful-fermat-d0fb83.netlify.com

HTML 3.27% TypeScript 95.86% JavaScript 0.88%

fullstackengineerchallenge's Introduction

Full Stack Developer Challenge

Demo site: https://wonderful-fermat-d0fb83.netlify.com

Prerequisite

node -v       # node version more than 10.16.3
sls -v        # serverless cli (more than 1.50.0)
aws --version # aws cli (more than aws-cli/1.16.220)

Setup

yarn setup

Instructions

yarn dev             # for developing
yarn build:client    # for building client pages
yarn deploy          # for deploying serverless services

I didn't build the employee page. If you want to switch to employee role and review other colleagues, please go to admin page and use "pretend" function.

Project structure

  • Frontend stack
    • React stack
    • redux-observable as redux middleware
    • styled-components as styling tool
  • Backend stack
    • AWS lambda + API gateway + dynamodb as the backend service.
brief back end folder structure: 

├── services
│   ├── functions       // all lambda functions
│   ├── offline         // dynamodb offline migrations 
│   ├── utils           // shared utility functions
│   ├── serverless.yml  // serverless framework config
...

brief front end folder structure: 

├── client
│   ├── public          // public resoures
│   ├── src
│   │   ├── actions
│   │   ├── components 
│   │   ├── constants
│   │   ├── epics       // all the side effects and action steams
│   │   ├── helpers     // helper functions
│   │   ├── index.tsx
│   │   ├── react-app-env.d.ts
│   │   ├── reducers
│   │   ├── serviceWorker.ts
│   │   ├── services   // API and third party intergrations
│   │   └── store.ts
...

Future Improvement

  • Error handling
  • Unit testing/Integration testing
  • Authentication flow
  • CI
  • Different enviroment (current only have dev enviroment)
  • Use lambda layer to share common libraries and reduce every service's size
  • Prettier UI

BELOW IS THE ORIGNAL REQUIREMENT


Requirements

Design a web application that allows employees to submit feedback toward each other's performance review.

Partial solutions are acceptable. It is not necessary to submit a complete solution that implements every requirement.

Admin view

  • Add/remove/update/view employees
  • Add/update/view performance reviews
  • Assign employees to participate in another employee's performance review

Employee view

  • List of performance reviews requiring feedback
  • Submit feedback

Challenge Scope

  • High level description of design and technologies used
  • Server side API (using a programming language and/or framework of your choice)
    • Implementation of at least 3 API calls
    • Most full stack web developers at PayPay currently use Java, Ruby on Rails, or Node.js on the server(with MySQL for the database), but feel free to use other tech if you prefer
  • Web app
    • Implementation of 2-5 web pages using a modern web framework (e.g. React or Angular) that talks to server side
      • This should integrate with your API, but it's fine to use static responses for some of it
  • Document all assumptions made
  • Complete solutions aren't required, but what you do submit needs to run.

How to complete this challenge

  • Fork this repo in github
  • Complete the design and code as defined to the best of your abilities
  • Place notes in your code to help with clarity where appropriate. Make it readable enough to present to the PayPay interview team
  • Complete your work in your own github repo and send the results to us and/or present them during your interview

What are we looking for? What does this prove?

  • Assumptions you make given limited requirements
  • Technology and design choices
  • Identify areas of your strengths
  • This is not a pass or fail test, this will serve as a common ground that we can deep dive together into specific issues

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.