mlp-generator
JS Project for Generating Simple Artificial Neural Networks
- Features
- Getting Started
- TODO
- Built With
- Project Structure
- Versioning
- Authors
- License
- Acknowledgments
Features
- Visual mode MLP Artificial Neural Networks generation
- Realtime Training ANNs for SPAM classification
- Visualization of training results
- Downloading JSONs of trained ANNs
Soon
- Multiple datasets
- Dataset uploading
- Downloading JS functions of trained ANNs
- Module for converting images to textual datasets
Getting Started
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
Prerequisites
Installing
If you have git, you can install mlp-generator
via git clone:
# Get the latest snapshot
git clone -b master https://github.com/Lure-of-Lysergide/mlp-generator
# Change directory
cd mlp-generator
# Install NPM dependencies
npm install
# Then simply start the application
node index.js
TODO
Front-end:
- Review the networks view :
- Change
Datatables
plug-in with a better solution - Add modals for non-implemented buttons
- Change
- Review the visualization code :
- Use
D3.js
for charting insteadHighcharts.js
- Don’t hardcode the array with colors
- Creating of graphs must not be done with different functions for network and network-form views
- Use
- Use
Webpack
or something like that - Reorganize client-side JavaScript :
- DRY
- Implement concatenation of *.js files
- Implement minification of *.js files
- Don’t use
jQuery
- Maybe rewrite the fron-ent with
Angular
(or something else)
Back-end:
- Deploy
- Add functionality for multiple dataset processing :
- Rewrite the db middleware
- Add functionality for uploading datasets to server
- Add functionality for editing datasets
- Extend readable dataset formats to *.json, *.xml, *.csv, *.tsv, *.xls etc.
- Review the Network Controller :
- Reorganize the async code (maybe with
Rx.js
) - Implement dataset randomization
- Reorganize the async code (maybe with
- Add functionality for continue training after server crash
- Add functionality for listing and deleting Weights (without Networks) in DB
- Add functionality for converting images to textual datasets
Documentation:
- Add
CHANGELOG
Built With
Back-end:
- brain.js - artificial neural network library
- Node.js - JavaScript runtime
- Express - server-side framework for
Node.js
- MongoDB - document-oriented NoSQL database
- mongoose -
MongoDB
object modeling library - pug - template engine
Front-end:
- D3.js - data manipulation and visualization library
- Highcharts.js - charting library
- Datatables - table plug-in for
jQuery
- Bootstrap - front-end component library
- jQuery - JavaScript library (added only for supporting
Datatables
andBootstrap
scripts)
Project Structure
Name | Description |
---|---|
config/ | Database URI and connection options |
controllers/api.js | Controller for JSON API routes |
controllers/network.js | Main controller for Neural Networks |
controllers/router.js | Controller for routing pages |
db/ | The SPAMBASE dateset |
middlewares/db.js | Script for reading data from spambase dataset |
models/ | Mongoose schema and models for Neural Networks |
public/ | Static assets (css, fonts, img, js, lib, favicon) |
public/css/main.css | Compiled and minified css |
public/fonts/ | Font-Awesome files |
public/js/ | Client-side JavaScript |
public/lib/ | Client-side JavaScript dependencies |
src/css/ | Bootstrap, Font-Awesome and some themes |
src/css/main.scss | Main style overrides |
views/ | Pug templates for each page |
views/partials/ | Base layout, navbar and footer partial templates |
index.js | The entry point of application with cluster module |
server.js | The Express server and route definitions |
Versioning
This project use SemVer for versioning. For the versions available, see the tags on this repository.
Authors
- Niţa Radu - Initial work - Lysergide
License
This project is licensed under the MIT License - see the LICENSE file for details
Acknowledgments
This project use the Spambase Data Set from UCI Machine Learning Repository