https://github.com/akullpp/arabro
Simple demo project to show the interaction and surroundings of several technologies, i.e. Maven, Docker, Spring Boot & React. The actual use case is to convert arabic to roman numbers.
https://github.com/akullpp/arabro
Last synced: about 1 year ago
JSON representation
Simple demo project to show the interaction and surroundings of several technologies, i.e. Maven, Docker, Spring Boot & React. The actual use case is to convert arabic to roman numbers.
- Host: GitHub
- URL: https://github.com/akullpp/arabro
- Owner: akullpp
- License: mit
- Created: 2017-09-15T20:36:22.000Z (almost 9 years ago)
- Default Branch: develop
- Last Pushed: 2017-11-03T11:55:50.000Z (over 8 years ago)
- Last Synced: 2025-01-16T16:42:50.212Z (over 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 144 KB
- Stars: 3
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# arabro
Converts Arabic numerals to Roman numerals.
Since this is a demonstration, the SPA is provided by the same server which should normally be extracted and served seperately as static resource.
## Requirements
[Docker](https://www.docker.com/) (stable:latest)
## Run
```
docker-compose up
```
or a clean slate
```
docker-compose up --build
```
The server can be accessed under port `8080` with the web application served at the root.
The Swagger API can be used under the `http://:/swagger-ui.html` URL.
## Development
### Backend
```
./mvwn spring-boot:run
```
The backend will be available at port `11000`.
### Frontend
Requires [Node](https://nodejs.org/) (latest).
Inside the `src/main/javascript` folder use
```
npm start
```
The frontend will be available at port `3000`.
## Build
```
./mvwn clean install
```
## Improvements
### General
* Implement E2E tests
### Backend
* Implement a sparse bit vector for the number representation
* Implement a cache
* Persistence
* Implement authentication and authorization
### Frontend
* Substitute propTypes with Flow or TypeScript
* Extract strings for localization support
* Implement page model object for tests
* Abstract common functions, e.g. input or clicking in tests
* Use Redux for state