https://github.com/thenorstroem/todo-management-tool
Creating an enterprise-flavoured ToDo application from scratch with the Furo Web Stack. Story line: Peter has been working in a software company for 10 years and he even managed to get a stake in the company. Recently, the company got a new investor and Peter had to sell his shares. With the realised profit, he bought a modern apartment building with 8 flats and reduced his workload to 60%. This allows him to do the work on the newly acquired house in his free time. Everything is going well, but Peter has underestimated the amount of work involved. He writes notes everywhere about what still needs to be done. Of course, Peter sometimes loses some of these notes and thus annoys his tenants a little. Peter promises to do better and he plans to build a web application to organise the tasks that come up.
https://github.com/thenorstroem/todo-management-tool
furo golang grpc grpc-gateway javascript protocol-buffers upperdb webstack
Last synced: about 1 month ago
JSON representation
Creating an enterprise-flavoured ToDo application from scratch with the Furo Web Stack. Story line: Peter has been working in a software company for 10 years and he even managed to get a stake in the company. Recently, the company got a new investor and Peter had to sell his shares. With the realised profit, he bought a modern apartment building with 8 flats and reduced his workload to 60%. This allows him to do the work on the newly acquired house in his free time. Everything is going well, but Peter has underestimated the amount of work involved. He writes notes everywhere about what still needs to be done. Of course, Peter sometimes loses some of these notes and thus annoys his tenants a little. Peter promises to do better and he plans to build a web application to organise the tasks that come up.
- Host: GitHub
- URL: https://github.com/thenorstroem/todo-management-tool
- Owner: theNorstroem
- License: mit
- Created: 2021-11-05T12:00:24.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-05-23T09:15:50.000Z (about 4 years ago)
- Last Synced: 2025-12-18T06:33:03.185Z (6 months ago)
- Topics: furo, golang, grpc, grpc-gateway, javascript, protocol-buffers, upperdb, webstack
- Language: Python
- Homepage: https://furo.pro/docs/guides/ebook-tutorial/
- Size: 9.15 MB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Creating an enterprise-flavoured ToDo application from scratch with the Furo Web Stack
- _eBook_: [eBook.pdf](./eBook.pdf) [eBook.epub](./eBook.epub)
- _Repository_: https://github.com/theNorstroem/todo-management-tool
- _Furo Web Stack_: https://furo.pro/
## ToDo Application


## System Prerequisites
For this example to fly, the following software components should be installed on the system.
- git, https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
- Docker, https://docs.docker.com/get-docker/
- Go, https://go.dev/doc/install
- NodeJS / npm, https://nodejs.org/en/download/
## Getting Started
We recommend 2+ years of programming experience in JavaScript / HTML / CSS and a basic knowledge of Protocol Buffers. Experiences in Go is also a plus. But don’t worry, you don’t have to be an expert.
download the eBook:
[eBook.pdf](./eBook.pdf) [eBook.epub](./eBook.epub)
The e-book includes a usecase-driven guide through the chapters
clone the repository:
```
git clone git@github.com:theNorstroem/todo-management-tool.git
```
checkout chapter 01:
```
git checkout c01_todos_api_contract
```
## Final Project Structure
.
|-- LICENSE
|-- README.md
|-- api
|-- client
`-- grpc-backend
## Local API Development
### Use local container build
[Furo build environment docker container](https://github.com/eclipse/eclipsefuro/tree/main/BEC)
https://hub.docker.com/r/thenorstroem/furo-bec
```shell script
docker pull thenorstroem/furo-bec:v1.35.1
```
Example Usage: docker run -it --rm -v $(pwd):$pwd/specs -v ~/.ssh:/root/.ssh thenorstroem/furo-bec:v1.35.1
Commands: https://furo.pro/docs/commands/
**start the furo build environment container from /api**
## Local Web Application Development
All the web application source is located in the subfolder `client`.
### Install dependencies
```
npm i
```
### Starting Web Application in mock mode
```
npm run start:mock
```
### Starting Web Application with backend proxy (backend for frontend)
```
npm run start
```
## Local gRPC Server Development
All the gRPC server code is located in the subfolder `/grpc-backend`.
```
cd grpc-backend
go run ./...
```
or with the built version
```
cd grpc-backend
go install ./cmd/...
tmt-grpc
```
## Local gRPC Gateway
All the gRPC gateway code is located in the subfolder `/api/dist/grpc-gateway`.
```
cd api
GW_SERVER_ADDRESS=localhost:8481 GRPC_SERVER_ADDRESS=localhost:7070 go run ./...
```
or with the built version
```
cd api
go install ./dist/grpc-server/cmd/...
GW_SERVER_ADDRESS=localhost:8481 GRPC_SERVER_ADDRESS=localhost:7070 cmd
```