Why this project?
Why this project?
We know it's sometimes overwhelming to learn all about your tools before you can work with them. We hope you can use this repository as reference material on your development journey.
Please feel free to use this project as a template for your web application. It's a nice way to kick-start your work so you don't need to spend time on your framework - the piece we really enjoy.
We chose a sample notepad application because it's a concept that is easy to understand and uses many of the pieces you will use in any web application you build. This project uses Mithril on the front-end (UI) and Go on the back-end (API). This project is designed to show good development and CI/CD practices as well as integrations between modern development tools.
Please feel free to use this project as a template for your web application. It's a nice way to kick-start your work so you don't need to spend time on your framework - the piece we really enjoy.
We chose a sample notepad application because it's a concept that is easy to understand and uses many of the pieces you will use in any web application you build. This project uses Mithril on the front-end (UI) and Go on the back-end (API). This project is designed to show good development and CI/CD practices as well as integrations between modern development tools.
Which tools does this project use?
- Mithril, a modern client-side JavaScript framework for the front-end GUI
- Go, a high-performance language for the back-end API
- MySQL, a relational database for storage of data
- Bulma, a CSS framework for the front-end
- Cypress, a JavaScript testing framework for end to end tests
- Docker, a virtualization platform to easily deploy the microservices in containers
- ESLint, a JavaScript linting utility to enforce UI formatting rules
- gvt, a dependency management solution for Go
- make/Makefile, a build system to centralize all the commands for the project
- Webpack, a bundler that compiles JavaScript modules and integrates with Mithril, Babel, and ESLint
- Rove, a MySQL migration tool inspired by Liquibase
- Swagger/Codegen, OpenAPI 2.0 spec and tool for documenting the API
- Travis-CI, a CI/CD platform for automated testing and deployment
- Coveralls, a test suite coverage tool for the API