Getting Started
The JCCI Project refers to "賽馬會「復元有晴天」社區支援計劃" or "復元有晴天" in short. This project is comprised of two main portals for two types of audiences. Web Portal is for centres' staff for content management and App Portal is for centres' members to gain access to the centres' contents. App Portal includes IOS and Android, available for the public to download via AppStore and Google Play separately.
Goal
Design
The JCCI API is designed based on Modular Monolithic Architecture and Server-client REST API Architecture. The application is divided into different components with well-defined boundaries. This architectural design pattern is adopted in this project to extract the advantages from both Monolith and Microservice, and at the same time, to avoid the complexities from sole Monolith and sole Microservice.
The components are mainly categoried as below (The list is still under construction):
- jcci-api
- jcci-notification-service
- jcci-media-service
- jcci-analytics-service
- jcci-health-service
All inbound requests and outbound responses will go through the core-api component and this component will coordinate with other services for the specific functions. In other words, the core-api component provides functions as an API gateway, authorization & authentication component and business logic server.
For the format used in the API documentation, our API is revolved around the easy-understanding resource-oriented URLs and the well-defined standard object attributes. Except POST
method, any other methods are idempotent unless otherwise specified. Our API is in the format HTTP/1.1 and follows Standard HTTP response codes.
Regarding the security, all sensitive API needs authentication before the server returns the data. The authentication is based on JWT authentication method and the request-respponse body is all JSON-encoded unless otherwise specified.
This documentation is written for the JCCI API, and only the latest minior version will be documented. The change logs will be available to record any update when the API documentation is mature enough.
Terminology
NLPRA
NLPRA refers to New Life Psychiatic Rehabilitation Association (新生精神康復會)
MHAHK
MHAHK refers to The Mental Health Association of Hong Kong (香港心理衞生會)
JCCI Backend
JCCI Backend refers to the whole server architecture for all the business logic.
JCCI Mobile Application / JCCI App
JCCI Mobile Application refers to the moblle applications in JCCI, including both IOS and Android. It may be abbreviated as Mobile Application or App in this documentation.
JCCI Web Portal
JCCI Web Portal refers to the admin portal for staff members to manage the system. It may be abbreviated as Web Portal or Web in this documentation.
JCCI Frontend
JCCI Frontend is a collective terms of JCCI Mobile Application and JCCI Web Portal.
JCCI API
The REST API for JCCI Frontend to communicate with the JCCI Backend.
Admin User
Admin User refers to a collection of users who are authorized to use the JCCI Web Portal.
App User
App User refers to a collection of users who are only allowed to use the JCCI App.
JCCI User
JCCI User refers to all users in the JCCI System.