Skip to content
This repository has been archived by the owner on Jun 1, 2024. It is now read-only.
/ alpha-sense Public archive

Small programming task, home assignment, 4 hrs limit

License

Notifications You must be signed in to change notification settings

alaz/alpha-sense

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What is this

This is a complete client-sever React/Node project built per a home programming assignment. I do not want to disclose all the assignment's terms, but the time limit was 4 hours. A requirement to upload my solution onto Github was explicit.

The sole author of all the code is me, Alexander Azarov. The license is GPL, mind it.

Side notes

I can see huge progress in the software engineering industry. The last time I was assigned a home task to create this kind of an application was 1998, we called it a "message board" and a Web's common programming language was Perl at that time. I got "till the morning" time limit, I was young and thought it's plenty of time, so I decided to take a chance to try something new. And successfully delivered the solution written in a new technology called PHP to the hiring manager's surprise.

It's 2019, a home programming task is still the same, but we call it a "chat application" now. And of course the technology stack is a bit different. Now we are expected to write it as an SPA in Javascript, React, and our backend is certainly supposed to be Node.js. Only the time limit is mere 4 hours.

What a wonderful 20 years long journey. At least I know what to expect in the next 20 years.

Alternatives

A quick Github search reveals at least:

Report

Missing parts

  • Disable the button when input is empty.

Building

Get the dependencies:

yarn

Production

yarn run build
yarn run server

In browser

http://localhost:8080

TODO

  • Testing
  • Security: CSRF
  • Proper WAI ARIA
  • I18n
  • Schema.org markup
  • Common types between client / server
  • WebSockets
  • Caching in a browser's local storage
  • webpack-dev-middleware as Express router to ease development cycles