56 lines
2.0 KiB
Markdown
56 lines
2.0 KiB
Markdown
# RSSA SIMRS-VX BACKEND
|
|
Or in english Hospital Information Management System (HIMS), is a system that
|
|
manages the information of the hospitals and the patients.
|
|
|
|
## Stacks
|
|
- Language : Golang<br />
|
|
Link: https://go.dev
|
|
- Framework : No Framework<br />
|
|
Why? Go (Golang) applications often do not require full-fledged frameworks
|
|
due to several key aspects of the language and its ecosystem:
|
|
- Comprehensive Standard Library: Go's standard library is exceptionally
|
|
robust and provides much of the functionality that would typically be found
|
|
in frameworks in other languages.
|
|
- Simplicity and Explicit Design: Go emphasizes simplicity and clarity.
|
|
Frameworks often introduce a degree of "magic" or hidden complexity
|
|
through inversion of control, where the framework dictates the
|
|
application's flow
|
|
- Modular Libraries: Instead of a single, all-encompassing framework, the Go
|
|
community favors small, modular libraries that perform specific tasks well.
|
|
- Performance and Efficiency: Go is designed for performance and efficiency.
|
|
Frameworks can sometimes introduce performance overhead due to their layers
|
|
of abstraction.
|
|
|
|
So? No framewok is the best framework.
|
|
- Database : PostgreSQL<br />
|
|
Link: https://www.postgresql.org
|
|
- Cache : Redis<br />
|
|
Link: https://redis.io
|
|
- File Server : Minio<br />
|
|
Link: https://www.min.io
|
|
|
|
## Libraries
|
|
- Routing Helper: Apem<br />
|
|
Link: https://github.com/karincake/apem
|
|
- ORM: GORM<br />
|
|
Link: https://gorm.io
|
|
- Database Migration: Atlas<br />
|
|
Link: https://atlasgo.io/guides/orms/gorm/program
|
|
|
|
## Others
|
|
- Project Layout: Golang Standards Project Layout<br />
|
|
Link: https://github.com/golang-standards/project-layout
|
|
- Architecture: Clean Architecture<br />
|
|
Link: https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html
|
|
|
|
## Commands
|
|
- Main api:
|
|
- go to the ./cmd/main-api
|
|
- run `go run .` to run in debug mode
|
|
- run `go build` to build the binary
|
|
- Main migration:
|
|
- go to the ./cmd/main-migration
|
|
- run `go run .` to run in debug mode
|
|
- run `go build` to build the binary
|
|
|