https://github.com/davidezechukwu/decode_api
A NodeJS Typescript Loopback4 RESTful API
https://github.com/davidezechukwu/decode_api
loopback4 nodejs restful typescript xslt
Last synced: 30 days ago
JSON representation
A NodeJS Typescript Loopback4 RESTful API
- Host: GitHub
- URL: https://github.com/davidezechukwu/decode_api
- Owner: davidezechukwu
- Created: 2025-04-06T18:15:20.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-04-06T18:30:24.000Z (about 1 year ago)
- Last Synced: 2025-04-06T19:32:10.612Z (about 1 year ago)
- Topics: loopback4, nodejs, restful, typescript, xslt
- Language: HTML
- Homepage: https://decodeonline.app/api
- Size: 3.38 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[![LinkedIn][Linkedin-shield]][Linkedin-url]
## Overview
This platform is a commercially engineered full‑stack application framework designed to accelerate the delivery of modern digital products. Built entirely with **TypeScript**, it unifies the UX, API, and Data layers into a single, cohesive ecosystem that supports scalable, maintainable, and enterprise‑grade development.
The architecture incorporates industry‑proven design patterns and delivers a comprehensive suite of production‑ready capabilities, including:
- Authentication and authorisation
- Email and in‑app notification infrastructure
- Automated testing
- CI/CD pipelines
- API gateway and service orchestration
- Background workers
- Localisation and globalisation
- Multi‑channel communication
- Extensible, pattern‑driven architecture
This foundation enables organisations to rapidly build bespoke web and cross‑platform mobile applications while maintaining high standards of security, performance, and operational clarity.
The Notification Engine, for example, is built using the **Strategy Pattern** and the **Open/Closed Principle**, allowing seamless integration of new channels such as Facebook Messenger, WhatsApp, or Twitter DM with minimal code.
Although React’s functional‑only paradigm introduces architectural constraints, the use of **SWR Hooks** within the web client delivers exceptional data‑fetching performance and developer efficiency.
---
## Technology Direction
While the current TypeScript‑based stack is powerful and commercially viable, the long‑term strategic direction is shifting toward the **.NET ecosystem** to meet enterprise requirements for:
- Greater architectural stability
- Mature tooling and diagnostics
- Stronger AI and ML integration
- Enhanced security posture
- First‑class support for complex data modelling
Frameworks such as **Blazor (C#)** and **MAUI (C#)** offer a unified, enterprise‑ready environment for building cross‑platform applications with long‑term maintainability.
Loopback remains a strong API framework, but limitations such as the absence of compound primary key support restrict advanced database normalisation (4NF/5NF) and reduce performance‑tuning flexibility for large datasets.
Similarly, **Next.js**, while powerful, introduces frequent breaking changes that complicate long‑term enterprise planning.
Despite these considerations, the current platform remains a highly capable, extensible, and commercially deployable solution for organisations seeking rapid development with modern tooling.
---
## Additional Insights
For more insights on database performance, architectural patterns, and object‑oriented JavaScript, visit:
**https://twitter.com/davidezechukwu**
---
## API Documentation
Comprehensive API documentation is available, covering all endpoints, parameters, and response formats.
> **Swagger Endpoint**
> Explore and test API endpoints using the interactive Swagger interface.
> **TypeDoc Reference**
> Detailed documentation generated using TypeDoc, covering all classes, functions, interfaces, and internal structures.
Start building with the API today. If you have questions or encounter issues, feel free to
[reach out](mailto:davidezechukwu@hotmail.com?subject=Report%20a%20bug&body=Details:%0A%0AExtra%20information:%0A).
### 👉 Technical Documentation
https://decodeonline.app/api/docs/modules.html
---
## Built With
* [![Typescript][Typescript]][Typescript-url]
* [![Loopback][Loopback.js]][Loopback-url]
---
## Supported Databases
* [![SQLServer][SQLServer]][SQLServer-url]
* [![Postgres][Postgres]][Postgres-url]
* [![MongoDB Badge][MongoDB]][MongoDB-url]
---
## Getting Started
A database is required before running the platform. You may:
- Use the provided T‑SQL scripts (ANSI‑compatible and suitable for PostgreSQL), or
- Run `npm run migrate` to automatically create database objects and seed taxonomy tables.
> **Important:**
> The database **must** be created manually beforehand, including the login credentials specified in the `.env` file. Neither the scripts nor the migration command create the database or user accounts.
Loopback does not include native Up/Down migration support (unlike .NET Entity Framework), though third‑party libraries can be integrated if needed.
### Local Development (Windows)
You will need:
- Docker (if using containerised DB, Redis, or worker processes)
- Redis server (WSL2 Ubuntu Redis works well)
- Node.js `>= 20.9.0`
- NPM `>= 7.24.2`
- PowerShell with `Set-ExecutionPolicy RemoteSigned`
- Port forwarding enabled via
`.\api\src\_infrastructure\docker\os\windows\set-up-port-forwarding-for-wsl2.ps1`
- Updated hosts file using
`.\api\src\_infrastructure\docker\os\windows\hosts.txt`
---
## Roadmap
- [x] SCRUM Project
- [x] Public Website
- [x] Administrative Website
- [ ] Android Native Application
- [ ] iOS Native Application
- [x] Multi‑language Support
- [x] English
- [x] French
- [x] Punjabi
- [ ] Spanish
- [ ] German
- [x] Email & SMS communication
- [x] Documentation
- [x] Azure CI/CD
---
## Bugs
[Report a bug](mailto:davidezechukwu@hotmail.com?subject=Report%20a%20bug&body=Url:%0ADetails:%0A%0ABrowser:%0A%0AOS:%0AExtra%20information:%0A)
---
## Request a Feature
[Request a feature](mailto:davidezechukwu@hotmail.com?subject=Request%20a%20feature&body=Details:%0A%0AExtra%20information:%0A)
---
## Live Demo
- API Explorer: https://decodelocal.com/api/explorer/
- Web Client: https://decodeonline.app/
Authentication is required for protected API endpoints.
---
## Reference
https://decodeonline.app/api/docs/modules.html
---
## Contact
- **Name:** David Ezechukwu
- **Email:** mailto:davidezechukwu@hotmail.com
---
[Typescript]: https://img.shields.io/badge/typescript-000000?style=for-the-badge&logo=typescript&logoColor=white
[Typescript-url]: https://www.typescriptlang.org/
[Linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
[Linkedin-url]: https://linkedin.com/in/davidezechukwu
[Loopback.js]: https://img.shields.io/badge/loopback.js-000000?style=for-the-badge&logo=loopbackdotjs&logoColor=white
[Loopback-url]: https://loopback.io/
[SQLServer]: https://img.shields.io/badge/sqlserver-DD0031?style=for-the-badge&logo=sqlserver&logoColor=white
[SQLServer-url]: https://www.microsoft.com/en-gb/sql-server/
[Postgres]: https://img.shields.io/badge/postgres-DD0031?style=for-the-badge&logo=postgres&logoColor=white
[Postgres-url]: https://www.postgresql.org/
[MongoDB]: https://img.shields.io/badge/MongoDB-green?style=flat&logo=mongodb&logoColor=white
[MongoDB-url]: https://www.mongodb.com/