This app is of course a proof-of-concept. The idea is to encrypt short messages using the Stanford Javascript Crypto Library
Javascript encryption is by no means secure.
Clone this repository. run npm install
inside the securli directory.
Start the app inside the securli dir:
npm start
Run tests with:
npm test
Indent is 4 spaces, use ;
, single quotes, 80 chars, jadidija.
( learn and live to accept the beautifier. )
Make sure to run the beautifier and hinter before each commit:
npm run-script tidy
npm run-script jshint
This way the changes between commits are clear and the code remains consistent.
Add unit tests where appropriate in the test
directory and run
npm test
to see the results.
Whatser is looking for a javascript engineer. This app is part of a coding challenge in our hiring process. We hope to have created a fun project to hack on, and find out whether we're a good match :-)
Please start by forking the repository, and choose one or or more of the challenges described below. You may enter your contribution by opening up a pull request. Feel free to improve the application where needed.
We would like to propose the following challenges: ( If you feel you have a better idea, we're looking forward to your pull request! )
The app uses a prompt
to allow the user to enter a password. This of course is not the best way to do this.
Improve the password input by providing the user hints for a more secure password:
- password length: the longer the password, the better
- different characters: more points for passwords containing non-alpha chars
- variation: less points for passwords that contain repeating sequences of characters like
aaa
,111
, etc.
Also provide feedback to the user about the strength of the password.
Our users often make the mistake of mistyping their password. Add a check that prevents this mistake from happening.
We would like to create an API service to accommodate our app. Create simple a REST
API using the REST Verbs GET
, POST
, DELETE
, exposing the current functionality: delete, create and view a message.
Bonus points: supply small reference client examples using curl
or the request
library from npm.
Since the launch of our REST
client, the number of users has been increasing. The current storage solution does not scale very well beyond a single machine.
Improve the storage of secret message in such a way that it is no longer bound to a single machine.
Add a date field to the message, so that the user can choose an expiry date for his message. Once the message has expired, it can no longer be viewed. The messaged should be cleaned up when requested, and the user should get feedback that the message is no longer available.
We would like to start offering a better service to our users, by allowing them to create an account, and list the messages they have created, so they can view and remove those messages.
Add a feature to the application, so that the creator of a message gets a copy of the email sent to the recipient, and receives an update when the message has been read.