-
Notifications
You must be signed in to change notification settings - Fork 0
Components
Described below are the main, internally developed, specific components that make up the Splayce Law project.
Law's server-side components are on Imaginatio/law, in a multi-component SBT project:
-
law-commons(java) contains basic, low-level utilities used in other components -
law-model(scala) contains basic utility models -
law-extractors(scala) implements the matching and extraction of law expressions (regex-based) ; also holds the common specifications for this extraction (also used by the client) -
law-database(java) implements the Law indexing (from Legifrance source files) & searching mechanisms, exposed as a java API -
law-backend(scala) provides a Web server exposing the law index as a REST API
The technology stack (not including server environment):
- Java 7
- Scala 1.9.1
- REL 0.2 for regex composition
-
Lucene 4.0 (
core+ somecontrib) reverse index - Play! framework 2.0 (scala version) as Web framework
See project/Build.scala, other files in this directory, and each component's build.sbt for the exact dependencies.
The exposed REST API is documented on apiary.
Law's client (a Microsoft Word 2007+ plugin) is located in Imaginatio/microsoft along with some other .NET modules:
-
Commoncontains common utilities -
NLPhas some NLP utilities -
Lawcontains the specify implementation for Law plugin - other modules are not currently actively used (although loosely maintained for compatibility with
Common)
The technology stack:
Visual Studio 2010 SP1 is the reference/recommended IDE, VS 2012's byte code being incompatible with Windows XP.
Some HTML clients are under development in Imaginatio/law-web:
- Web site
- Browser extensions:
- Firefox
- Chrome
- Safari
- Opera (attempt not working so far)
Each client depends on some files in common directory. Use init.sh to copy/symlink these files for each project. Copied/symlinked files are gitignored.
Browser extensions are based on BabelExtLight, a fork of BabelExt, a cross-browser extension boilerplate. This fork remove some unused/useless features and keep only XHR (and cross-domain management) and style injection. See documentation for more information.
Technology stack:
- HTML/JavaScript/CSS
- Sass/Compass
- Angular (v1.0.4)
- jQuery (v1.8.0)
-
Firefox Add-on SDK (1.13.1): used to run
cfx runand buildcfx xpiFirefox extension -
Extensible Archiver Utility (xar): used to extract Safari certificates (you will not need to do that if you keep currently generated certificates, in
.safari.certificatesdirectory) and to build Safari extension. Follow how to build Safari extension instructions for more informations -
crxmake:
sudo gem install crxmake, used to build Chrome extension
If you got cfx, xar and crxmake installed, you just need to launch build.sh to build all extensions.
The Splayce Web site www.splayce.com is in Imaginatio/web:
-
imaginatio.fr(static HTML) has the company's Web site -
splayce.com(PHP) holds the product Web site, including an administration interface
Technology stack:
- PHP 5.3
- Flight PHP framework
- MySQL 5.0
- Yeoman, managing SCSS/Compass with Twitter Bootstrap 2.1.0
- Segment.io, managing analytics services: Google Analytics, MixPanel and GoSquared
Some items are used across several projects.
The main shared items are the law expression specifications/tests and regexes. Those are in the Law Server code base (in the law-extractor module) and imported by the Client.