This is an interview challengs. Please feel free to fork. Pull Requests will be ignored.
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.
- Add/remove/update/view employees
- Add/update/view performance reviews
- Assign employees to participate in another employee's performance review
- List of performance reviews requiring feedback
- Submit feedback
- 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
- Implementation of 2-5 web pages using a modern web framework (e.g. React or Angular) that talks to server side
- Document all assumptions made
- Complete solutions aren't required, but what you do submit needs to run.
- 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
- Assumptions you make given limited requirements
- Technology and design choices
- Identify areas of your strengths
- 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
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.
- 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
- 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