diff --git a/app/static/css/hugo-styles.css b/app/static/css/hugo-styles.css index 123d0409..3da3e6b6 100644 --- a/app/static/css/hugo-styles.css +++ b/app/static/css/hugo-styles.css @@ -11483,13 +11483,13 @@ textarea.form-control-lg { } } -@font-face { +/* @font-face { font-family: 'SF Pro Display'; src: url("http://localhost:1313//fonts/SF-Pro-Display-Regular.otf") format("opentype"); font-weight: normal -} +} */ -@font-face { +/* @font-face { font-family: 'SF Pro Display'; src: url("http://localhost:1313//fonts/SF-Pro-Display-Semibold.otf") format("opentype"); font-weight: 600 @@ -11499,7 +11499,7 @@ textarea.form-control-lg { font-family: 'SF Pro Display'; src: url("http://localhost:1313//fonts/SF-Pro-Display-Bold.otf") format("opentype"); font-weight: bold -} +} */ .fw-semibold { font-weight: 600 diff --git a/app/static/data/services.json b/app/static/data/services.json index 1c072b6b..6b5fb5fc 100644 --- a/app/static/data/services.json +++ b/app/static/data/services.json @@ -1,11 +1,32 @@ { "cms": { "title":"Content Management", - "content":"Effective content management is crucial for VachanOnline.com and the VachanGo app, the leading Scripture Engagement platform in Indian Languages. With a streamlined content management system, administrators can organize and distribute diverse resources, including commentaries, videos, audio bibles, and reading plans. This system facilitates seamless integration of new content and ensures a wide range of offerings in multiple Indian languages. It also enables efficient management of user-generated content, fostering an interactive community of users. Content management plays a pivotal role in maintaining a dynamic and enriching Scripture Engagement experience for users." + "content":"Effective content management is crucial for VachanOnline.com and the VachanGo app, the leading Scripture Engagement platform in Indian Languages. With a streamlined content management system, administrators can organize and distribute diverse resources, including commentaries, videos, audio bibles, and reading plans. This system facilitates seamless integration of new content and ensures a wide range of offerings in multiple Indian languages. It also enables efficient management of user-generated content, fostering an interactive community of users. Content management plays a pivotal role in maintaining a dynamic and enriching Scripture Engagement experience for users.", + "links":[ + { + "link":"https://vachanonline.com/", + "linkname":"Vachan Online", + "button":false + }, + + { + "link":"https://play.google.com/store/apps/details?id=com.bridgeconn.vachango&pli=1", + "linkname":"Vachan Go", + "button":false + } + ] }, "translation": { "title":"Translation APIs", - "content":"Translation APIs are primarily designed for text translation but are now also being experimented with for sign language translation. These APIs typically rely on vocabulary-based translation techniques and token replacement methods. They excel in handling very low-resource languages and languages that are closely related. Additionally, these APIs offer translation memory and context-aware suggestion capabilities, enhancing the quality and accuracy of translations. Whether it's cloud-based projects or local projects, these translation APIs can seamlessly integrate and support various implementation scenarios. Their versatility and capabilities make them valuable tools for enabling effective language translation in a wide range of applications." + "content":"Translation APIs are primarily designed for text translation but are now also being experimented with for sign language translation. These APIs typically rely on vocabulary-based translation techniques and token replacement methods. They excel in handling very low-resource languages and languages that are closely related. Additionally, these APIs offer translation memory and context-aware suggestion capabilities, enhancing the quality and accuracy of translations. Whether it's cloud-based projects or local projects, these translation APIs can seamlessly integrate and support various implementation scenarios. Their versatility and capabilities make them valuable tools for enabling effective language translation in a wide range of applications.", + "links":[ + { + "link":"https://isl.bridgeconn.com/", + "linkname":"IntelliSign", + "button":false + + } + ] }, "ai": { "title":"AI APIs", @@ -13,14 +34,47 @@ }, "auth": { "title":"Auth & Access Management", - "content":"Access Restriction is implemented for all the endpoints in different levels based on the API’s content priority. User level, Content level, Application level-based security is added to each endpoint. Some of the endpoints are open accessible and others are restricted to user-roles only. User with specific role permission can only access those APIs. Access to endpoints can be done with the help of authorized token. The security implemented for the Vachan Engine contents are based on Role Based Access Control (RBAC) Auwhich restricts the access based on user's role, access-tags etc." + "content":"Access Restriction is implemented for all the endpoints in different levels based on the API’s content priority. User level, Content level, Application level-based security is added to each endpoint. Some of the endpoints are open accessible and others are restricted to user-roles only. User with specific role permission can only access those APIs. Access to endpoints can be done with the help of authorized token. The security implemented for the Vachan Engine contents are based on Role Based Access Control (RBAC) Auwhich restricts the access based on user's role, access-tags etc.", + "links":[ + { + "link":"https://github.com/Bridgeconn/vachan-api/blob/version-2/docs/AccessManagement-RBAC.md", + "linkname":"Access Management", + "button":false + }, + + { + "link":"https://github.com/Bridgeconn/vachan-api/blob/version-2/app/auth/api-permissions.csv", + "linkname":"API Permissions", + "button":false + }, + + { + "link":"https://github.com/Bridgeconn/vachan-api/blob/version-2/app/auth/access_rules.json", + "linkname":"Access Rules", + "button":false + } + ] }, "graphql": { "title":"GraphQL", - "content":"GraphQL module for Vachan Engine is a specification for web APIs that offers a compelling alternative to REST. This module serves as a middle layer between client applications and data sources. With its powerful query language, GraphQL enables declarative data fetching, eliminating the need for over-fetching or under-fetching. Initially implemented using Graphene, we are now migrating to the Strawberry library, ensuring access to the latest GraphQL advancements. It is hosted alongside our REST API services, this integration allows you to leverage the best of both worlds. While REST provides familiar GET, PUT, and POST endpoints, GraphQL empowers you with flexible and precise data retrieval." + "content":"GraphQL module for Vachan Engine is a specification for web APIs that offers a compelling alternative to REST. This module serves as a middle layer between client applications and data sources. With its powerful query language, GraphQL enables declarative data fetching, eliminating the need for over-fetching or under-fetching. Initially implemented using Graphene, we are now migrating to the Strawberry library, ensuring access to the latest GraphQL advancements. It is hosted alongside our REST API services, this integration allows you to leverage the best of both worlds. While REST provides familiar GET, PUT, and POST endpoints, GraphQL empowers you with flexible and precise data retrieval.", + "links":[ + { + "link":"", + "linkname":"GraphQL", + "button":false + } + ] }, "microservices": { "title":"Micro Services", - "content":"Vachan Engine microservices architecture is broken down into a set ofi ndependently functioning services, each serving a specific business capability. These services communicate with each other through well-defined APIs, typically using lightweight protocols such as HTTP or messaging systems." + "content":"Vachan Engine microservices architecture is broken down into a set of independently functioning services, each serving a specific business capability. These services communicate with each other through well-defined APIs, typically using lightweight protocols such as HTTP or messaging systems.", + "links":[ + { + "link":"", + "linkname":"Microservices", + "button":false + } + ] } } \ No newline at end of file diff --git a/app/static/scripts/services.js b/app/static/scripts/services.js index c4407c50..26fbdbb4 100644 --- a/app/static/scripts/services.js +++ b/app/static/scripts/services.js @@ -30,13 +30,41 @@ const delay = ms => new Promise(res => setTimeout(res, ms)); async function setServiceContent(serviceName) { await loadSeriveData(); - const currentData = serviceContent[serviceName] - if (currentData){ + const currentData = serviceContent[serviceName]; + if (currentData) { serviceHeader.innerText = currentData.title; serviceBody.innerText = currentData.content; - } else{ + + // Check if links exist in the JSON data + if (currentData.links && currentData.links.length > 0) { + const linkContainer = document.createElement('div'); + linkContainer.classList.add('service-link-container'); + + // Iterate through the links and create anchor elements + currentData.links.forEach((linkData, index) => { + const linkElement = document.createElement('a'); + linkElement.href = linkData.link; + linkElement.target = "_blank"; // Opens link in a new tab + linkElement.innerText = linkData.linkname || 'Learn More'; // Use linkname or default text + linkContainer.appendChild(linkElement); + + + if (index < currentData.links.length - 1) { + const separator = document.createElement('span'); + separator.innerText = ' | '; + linkContainer.appendChild(separator); + } + }); + + + linkContainer.style.marginTop = '10px'; + + // Append the link container to the service card's body + serviceBody.appendChild(linkContainer); + } + } else { // failed to get data - serviceBody.innerText = 'something went wrong! Failed to load data'; + serviceBody.innerText = 'Something went wrong! Failed to load data.'; } } diff --git a/app/templates/landing_page.html b/app/templates/landing_page.html index 705e0ac9..1194dcdb 100644 --- a/app/templates/landing_page.html +++ b/app/templates/landing_page.html @@ -52,7 +52,6 @@ - @@ -105,6 +104,7 @@ + - -