Skip to content

spielhoelle/FullStackEngineerChallenge

 
 

Repository files navigation

Full Stack Developer Challenge

This is an interview challengs. Please feel free to fork. Pull Requests will be ignored.

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

Start application in docker

  • make sure docker daemon is running
  • make sure that the folder-location is mounted in dockers ressources/file-sharing options
  • start all containers with docker-compose up
  • stop them with docker-compose down or ^+c in the terminal
  • frontend runs on localhost:3000
  • backend runs on localhost:8080

Docs

The code is documented using TODO comment syntax to easily find documentation-objects. Do a matchcase-fulltext search for TODO to find all relevant documentation.

TODOs

Frontend

  • Submit forms with enter
  • Unify frontend tables and find HOC abstraction possibilities
  • Split reducer and global state in appropriate partial scopes to minimize re-renders (employee reducer, review reducer)
  • remove react warnings about unused variables

Backend

  • Improve mongodb table relations, validations, default values and model-concerns
  • Security considerations like deeper password-hashing, encryption between docker instances, properly restricted routes for user-roles
  • Deployment and scaling considerations

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 76.5%
  • JavaScript 21.1%
  • Dockerfile 1.4%
  • Other 1.0%