An integrated software platform for managing training operations, participant records, certification workflows, and supporting administrative processes.
This GitHub organization hosts the frontend application, backend services, shared assets, and supporting repositories that make up the Training Management System ecosystem.
The Training Management System is organized as a modular software platform composed of independent repositories with clearly separated responsibilities.
The architecture follows a layered approach, allowing the frontend, backend, shared assets, and supporting resources to evolve independently while remaining part of a unified platform.
Users
│
▼
Angular Web Application
│
▼
REST API (NestJS)
│
┌──────────────────┴──────────────────┐
▼ ▼
PostgreSQL Database S3-Compatible Storage
| Repository | Description |
|---|---|
| gse-client | Angular single-page application providing the user interface. |
| gse-api | NestJS backend responsible for authentication, business logic, document generation, and storage integration. |
| tu-assets | Shared logos, screenshots, branding assets, and media resources. |
| .github | Organization-wide GitHub profile, templates, and community configuration. |
These repositories are retained for historical reference, migration purposes, or previous development iterations.
| Repository | Description |
|---|---|
| gse-frontend | Previous frontend implementation. |
| temp-api | Temporary backend repository used during development. |
| tu-docs | Previous documentation repository. |
| tu-repo | Earlier project repository. |
The following screenshots illustrate several core workflows available within the platform.
| Layer | Technology |
|---|---|
| Frontend | Angular |
| Backend | NestJS |
| Language | TypeScript |
| Runtime | Node.js |
| Database | PostgreSQL |
| ORM | Prisma |
| Object Storage | S3-Compatible Storage |
| Authentication | JWT |
| Package Manager | PNPM |
| Containerization | Docker & Docker Compose |
Development across repositories follows a shared engineering approach:
- Modular architecture with clearly defined responsibilities.
- Strong separation between presentation, business logic, and infrastructure.
- Runtime configuration to simplify deployment across environments.
- Type-safe application development using TypeScript.
- Infrastructure abstraction through provider interfaces.
- Consistent documentation, coding standards, and repository organization.
GMF-GSE-Training
│
├── gse-client
│ │
│ ▼
│ REST API
│
├── gse-api
│ │
│ ├── PostgreSQL
│ └── Object Storage
│
├── tu-assets
│
└── .github
Each repository maintains documentation specific to its responsibilities.
| Repository | Documentation |
|---|---|
| gse-client | Frontend architecture, runtime configuration, development workflow, and deployment guidance. |
| gse-api | Backend architecture, API configuration, storage integration, and deployment guidance. |
| Name | GitHub | |
|---|---|---|
| Aminudin Abdulloh | https://github.com/AminudinAbdulloh | https://www.linkedin.com/in/aminudin-abdulloh-784157268 |
| Hassanul Resky Pratama | https://github.com/sanrskyprtma | — |
| Fatahillah Alif Pangaribowo | https://github.com/pangaribowo | https://www.linkedin.com/in/fatahillahalif |
| Faradila Galuh Pramesti | https://github.com/faradilagprm | https://www.linkedin.com/in/faradilagprm |
Development is organized through repository-specific feature branches and Pull Requests.
Before merging changes:
- Follow the coding standards defined by each repository.
- Keep documentation synchronized with implementation.
- Verify that automated tests continue to pass.
- Include deterministic database migrations when schema changes are introduced.
Each repository maintains its own licensing information.
Refer to the corresponding LICENSE file within each repository.
Built and maintained by the GMF-GSE-Training development team.





