Skip to content

asaunin/sms-classifier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SMS Classifier

At a present moment project is under slowpoke construction

Introduction

SMS Classifier is simple application that implements sms classification by categories: spam, marketing, time-sensitive messages and etc. Application should determine the SMS category by text, sender or country, for the future prioritizing and filtering purposes.

Features & requirements

  • Rules-engine based approach
  • Caching rule models for the high performance
  • Data loading & updating using MSSQL stored procedures (production mode restriction)
  • RESTful API

About

Cache library

Cache library module contains simple Cacheable interface:

public interface Cacheable<K, V> {

    int size();
    boolean isEmpty();
    void clear();
    V get(K key);
    V remove(K key);
    boolean containsKey(K key);
    //...

}

with different kinds of implementations:

These classes provide a base toolkit for convenient work with deletable DB records, their updating and storing into the cache. You can easily customise your own caches according to your requirements. For example see the Rule service, that is based on Listable cache) implementation.

Classifier service

Service is a RESTful API rules engine, which classifies sms's into different types. According to the performance requirements, all the data are stored in fast cached structures described above.

Installation

git clone https://github.com/ASaunin/sms-classifier
cd sms-classifier
mvnw clean install

Running

Locally with embedded H2 database

mvnw spring-boot:run -pl classifier

You can customize your own classification rules in appropriate H2 data file

Staging / Production mode

mvnw spring-boot:run -pl classifier -Dactive.profile=stage

Using stage or prod mode, you need to:

  • setup MSSQL database with your own correct schema & data
  • configure datasource url & credentials in application-{env}.yml

Swagger support

Use Swagger-UI endpoint to get an API description

About

SMS Classifier implements message classification by categories: spam, marketing, time-sensitive messages and etc.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published