Skip to content

PoC: improve security of sign in process by learning and checking other features like typing time

Notifications You must be signed in to change notification settings

tomekceszke/ml-login

Repository files navigation

ml-login

Build Status

Proof of Concept:

improve login security by learning and checking additional features like typing speed

demo

This distributed application is responsible for:

Preconditions

  • distributed, based on micro-services application written in Spring Boot & Cloud - goal: improve Spring's skills and writing multi-services applications
  • no external machine learning libraries, all algorithms written using only basic math formulas (+,-,*,/,^) - goal: know how anomaly detection algorithms work
  • use any Continuous Integration and Delivery systems together with tests - goal: know how to configure CI/CD systems and keep code quality discipline
  • deploy as docker's containers on any cheap VPS and make the application available for everyone - goal: know how docker deployment works from production point of view

Live demo

http://ml-login.ceszke.com (currently offline)

Tech Stack

  • Spring Boot
  • Spring Cloud (Config, Ribbon, Feign)
  • Spring Security
  • Spring Data JPA (Hibernate, H2)
  • JUnit, Spring MVC Test
  • Thymeleaf
  • Twitter Bootstrap
  • Maven
  • Travis CI
  • Docker

TODOs

  • prepare GUI:
    • login page ✔
    • integrate with Spring Security ✔
  • screenshots ✔
  • collector-service api ✔
  • basic use case... ✔
  • implement algorithm for choosing ε in learning-service
  • implement algorithm for model's evaluation in learning-service
  • validation of the input (request) data (in controllers)
  • introduce exception handling ✔
  • commons - split, refactor, clean up
  • introduce -client modules
  • add hystrix, zuul, eureka
  • add config clients/server ✔
  • extract configuration ✔
  • extract paths
  • clean up maven poms (introduce hierarchy)
  • refactor: service names ✔
  • introduce wiremock and integrational tests (multi services)
  • write more tests ✔
  • replace Thymeleaf by any modern frontend framework (angular/react/vue?)
  • prepare live demo ✔