Coder Social home page Coder Social logo

securli's Introduction

Securli

a simple service to send encrypted messages

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.

Installation

Clone this repository. run npm install inside the securli directory.

Running

Start the app inside the securli dir:

npm start

Run tests with:

npm test

Contributing

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.

Challenge

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! )

1. Improve password hints

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:

1. add an a algorithm that scores the 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.

2. Password validity check

Our users often make the mistake of mistyping their password. Add a check that prevents this mistake from happening.

2. REST API

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.

3. Scaling the persistence layer

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.

4. Message expiry

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.

5. User accounts

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.

6. Sending updates

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.

securli's People

Contributors

mvhenten avatar

Watchers

 avatar  avatar

Forkers

jiriknesl

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.