Validity.Red is a free web service for managing the expiration dates of documents (passports, travel cards, vaccinations, insurance, etc) and synchronizing them with your calendar. It is written in Go, TypeScript, Vue, and Rust.
- Create documents with expiration dates and notifications
- Manage your documents, categories them, and add notes
- Create multiple notifications for each document
- Sync your notifications with your calendar app (Google Calendar, Apple Calendar, Outlook, etc.)
More features are coming soon! The project is in active development.
graph LR
A(frontend-service: TS, Vue) === |REST| B((gateway-service: Go))
B --- J[(Redis DB)]
B --- |gRPC| C(user-service: Go) --- F[(Postgres)]
B --- |gRPC| D(document-service: Go) --- G[(Postgres)]
B --- |gRPC| E(calendar-service: Rust)
B -.- |REST| H([MailerSend: emails service])
K([Sentry: app error tracking])
L([New Relic: server monitoring])
M([Backblaze S3: for DB backups])
click A "https://github.com/samgozman/validity.red/tree/main/frontend-service" "Frontend SPA written in VueJS and TypeScript"
click B "https://github.com/samgozman/validity.red/tree/main/gateway-service" "Gateway service written in Go"
click C "https://github.com/samgozman/validity.red/tree/main/user-service" "Users service written in Go"
click D "https://github.com/samgozman/validity.red/tree/main/document-service" "Documents service written in Go"
click E "https://github.com/samgozman/validity.red/tree/main/calendar-service" "Calendar service written in Rust"
To run the Validity.Red app locally, you will need to have the following dependencies installed on your system:
- Docker
- Docker Compose
- Go
- Rust
- GolangCI-Lint
- rustfmt
- protoc
- Cargo
- Node.js v18
Download all the GO service dependencies:
make download_go_deps
Download and build all Rust dependencies:
make build_rust
Download all NPM dependencies:
make download_npm_deps
After that you can simply run the following command to run backend applications:
make up_build
and then to start up SPA dev server:
make spa_run_dev
And thats it! For more information please read the documentation provided in each services folder.
Validity.Red deployment and automation relies on GitHub CI and Terraform. You can find out more in the deployment section.
If you would like to contribute to the development of Validity.Red, please fork the repository and submit a pull request with your changes. We welcome any contributions that improve the service. You can also view the current project board here.
You can also contribute by reporting bugs or suggesting new features. Please use the GitHub issues for that.
This project is 100% open-source and is available for free. If you like it - you can support Validity.Red financially. Please look at FUNDING.yml page.
Validity.Red is licensed under the MIT License.