This is the monorepo of the monolith framework developed by Or-Bit for the didactic-side of the Software Engineering course. For more info, check out the institutional link.
- create project folder
- move in to the project folder
npm init
creates server projectnpm i -g create-react-app
create-react-app frontend
cd frontend
npm i -S monolith-frontend
For further reference: https://github.com/facebookincubator/create-react-app .
The following paragraphs present the list of submodules that compose the framework.
Source file compiler for pubblishing npm packages in ES5 formatting.
Contains all the useful classes for a bubble back-end. It comprehends the data persistence and bubble lifecycle functionalities, server and user objects, and some hepful functionalities such as external api retrieval, random id generator for a MongoDB database istance and regular expressions management.
Comprehends the classes used to create the gui and the notifications. It consists of classes useful for creating a bubble front-end.
Simple bubble with monolith-frontend and monolith-backend. It can be found at https://github.com/or-bit/monolith-hello-world .
To-do bubble implemented with Monolith. It can be found at https://github.com/or-bit/monolith-todos .
Bubble & eat is an app to manage restaurant services in a simple and fast way, just like writing a message on your favourite chat-app. It can be found at https://github.com/or-bit/bubble-and-eat .
Dependency management is handled by npm. Using lerna to split codebase into smaller npm modules we are able to share the common dependencies, resulting into:
- faster starting operations
- smaller memory footprint
- version consistency between submodules
lerna: make lerna a local project dependency to use it in project-wide scripts.
babel-cli: built-in CLI which can be used to compile files from the command line.
babel-preset-es2015: this preset is used to enable ES2015 code compilation down to ES5.
chai: is a BDD / TDD assertion library for node and the browser that can be delightfully paired with any javascript testing framework.
chai-as-promised: extends Chai with a fluent language for asserting facts about promises.
eslint: is a tool for identifying and reporting on patterns found in ECMAScript/JavaScript code.
eslint-config-airbnb: provides Airbnb's .eslintrc as an extensible shared config.
eslint-plugin-import: this plugin intends to support linting of ES2015+ (ES6+) import/export syntax, and prevent issues with misspelling of file paths and import names.
eslint-plugin-jsx-a11y: runtime-analysis tool, checks for accessibility rules on JSX elements.
eslint-plugin-react: get Eslint working with React.js .
gulp: gulp is a toolkit for automating painful or time-consuming tasks in the development workflow.
gulp-babel: Gulp plugin for Babel.
json-loader: needed for now (facebook/create-react-app#1895)