feat: Rebrand to License Authority with Govt of Goa branding
- Replace TLAS with License Authority throughout documentation - Add Government of Goa emblem/logo (Ashoka Chakra style) - Update frontend branding to match documentation - Add configurable Swagger API link via VITE_API_BASE_URL env var - Fix Docker build for VitePress (git dependency, .dockerignore) - Fix helmet security headers for HTTP deployments - Add CORS support for VM deployment Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -2,8 +2,7 @@ node_modules
|
||||
npm-debug.log
|
||||
.git
|
||||
.gitignore
|
||||
README.md
|
||||
docker-compose.yml
|
||||
.DS_Store
|
||||
*.md
|
||||
!docs/*.md
|
||||
.vitepress/dist
|
||||
.vitepress/cache
|
||||
|
||||
2
Documentation/.env.example
Normal file
2
Documentation/.env.example
Normal file
@@ -0,0 +1,2 @@
|
||||
# API Base URL for Swagger documentation
|
||||
VITE_API_BASE_URL=http://localhost:3001
|
||||
@@ -1,22 +1,27 @@
|
||||
import { defineConfig } from 'vitepress'
|
||||
|
||||
export default defineConfig({
|
||||
title: 'TLAS',
|
||||
description: 'Tokenized License Approval System - Enterprise Blockchain Platform for Government License Management',
|
||||
title: 'License Authority | Govt of Goa',
|
||||
description: 'Government of Goa - Blockchain-Powered License Management Platform',
|
||||
|
||||
head: [
|
||||
['link', { rel: 'icon', type: 'image/svg+xml', href: '/logo.svg' }],
|
||||
['meta', { name: 'theme-color', content: '#0f172a' }],
|
||||
['meta', { name: 'og:type', content: 'website' }],
|
||||
['meta', { name: 'og:site_name', content: 'TLAS Documentation' }],
|
||||
['meta', { name: 'og:site_name', content: 'License Authority Documentation' }],
|
||||
],
|
||||
|
||||
lastUpdated: true,
|
||||
cleanUrls: true,
|
||||
appearance: true,
|
||||
ignoreDeadLinks: ['/api/docs'],
|
||||
|
||||
themeConfig: {
|
||||
darkModeSwitchLabel: 'Theme',
|
||||
darkModeSwitchTitle: 'Switch to dark mode',
|
||||
lightModeSwitchTitle: 'Switch to light mode',
|
||||
logo: '/logo.svg',
|
||||
siteTitle: 'TLAS',
|
||||
siteTitle: 'License Authority',
|
||||
|
||||
nav: [
|
||||
{ text: 'Overview', link: '/overview/' },
|
||||
@@ -107,13 +112,9 @@ export default defineConfig({
|
||||
]
|
||||
},
|
||||
|
||||
socialLinks: [
|
||||
{ icon: 'github', link: 'https://github.com/goa-gel' }
|
||||
],
|
||||
|
||||
footer: {
|
||||
message: 'Tokenized License Approval System',
|
||||
copyright: 'Copyright 2026 Government of Goa. All rights reserved.'
|
||||
message: 'An Initiative of the Government of Goa, India',
|
||||
copyright: '© 2026 Government of Goa. All rights reserved.'
|
||||
},
|
||||
|
||||
search: {
|
||||
|
||||
10
Documentation/.vitepress/theme/ApiDocsLink.vue
Normal file
10
Documentation/.vitepress/theme/ApiDocsLink.vue
Normal file
@@ -0,0 +1,10 @@
|
||||
<script setup>
|
||||
const apiBaseUrl = import.meta.env.VITE_API_BASE_URL || ''
|
||||
const swaggerUrl = `${apiBaseUrl}/api/docs`
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<a :href="swaggerUrl" target="_blank" rel="noopener">
|
||||
<slot>Open API Documentation →</slot>
|
||||
</a>
|
||||
</template>
|
||||
@@ -1,16 +1,10 @@
|
||||
import { h } from 'vue'
|
||||
import type { Theme } from 'vitepress'
|
||||
import DefaultTheme from 'vitepress/theme'
|
||||
import './custom.css'
|
||||
import ApiDocsLink from './ApiDocsLink.vue'
|
||||
|
||||
export default {
|
||||
extends: DefaultTheme,
|
||||
Layout: () => {
|
||||
return h(DefaultTheme.Layout, null, {
|
||||
// You can add custom slots here
|
||||
})
|
||||
},
|
||||
enhanceApp({ app, router, siteData }) {
|
||||
// Register custom components or plugins here
|
||||
enhanceApp({ app }) {
|
||||
app.component('ApiDocsLink', ApiDocsLink)
|
||||
}
|
||||
}
|
||||
} satisfies Theme
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
# Build stage
|
||||
FROM node:20-alpine AS builder
|
||||
|
||||
ARG VITE_API_BASE_URL=http://localhost:3001
|
||||
ENV VITE_API_BASE_URL=$VITE_API_BASE_URL
|
||||
|
||||
RUN apk add --no-cache git
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY package*.json ./
|
||||
@@ -12,6 +17,7 @@ RUN npm run build
|
||||
# Production stage
|
||||
FROM nginx:alpine
|
||||
|
||||
RUN rm -rf /usr/share/nginx/html/*
|
||||
COPY --from=builder /app/.vitepress/dist /usr/share/nginx/html
|
||||
COPY nginx.conf /etc/nginx/conf.d/default.conf
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────┐
|
||||
│ TLAS Platform │
|
||||
│ License Authority Platform │
|
||||
├─────────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────┐ │
|
||||
|
||||
@@ -12,7 +12,7 @@ Government licensing in Goa processes over 50,000 applications annually across 1
|
||||
|
||||
## The Solution
|
||||
|
||||
TLAS (Tokenized License Approval System) digitizes the complete license lifecycle:
|
||||
License Authority digitizes the complete license lifecycle:
|
||||
|
||||
1. **Online application** with DigiLocker integration
|
||||
2. **Automated workflow** with configurable approval stages
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
## For Citizens
|
||||
|
||||
| Before TLAS | After TLAS |
|
||||
| Before | After |
|
||||
|-------------|------------|
|
||||
| Multiple office visits | Apply from anywhere |
|
||||
| No status visibility | Real-time tracking |
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
## For Departments
|
||||
|
||||
| Before TLAS | After TLAS |
|
||||
| Before | After |
|
||||
|-------------|------------|
|
||||
| Paper file management | Digital workflow |
|
||||
| Manual tracking registers | Automated status updates |
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
## For Government
|
||||
|
||||
| Challenge | TLAS Solution |
|
||||
| Challenge | Platform Solution |
|
||||
|-----------|---------------|
|
||||
| Document fraud | Cryptographically signed certificates |
|
||||
| Corruption perception | Transparent, auditable process |
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
## Overview
|
||||
|
||||
TLAS is designed and operated in compliance with applicable Indian laws, government standards, and international security frameworks.
|
||||
This platform is designed and operated in compliance with applicable Indian laws, government standards, and international security frameworks.
|
||||
|
||||
## Regulatory Compliance
|
||||
|
||||
@@ -53,7 +53,7 @@ TLAS is designed and operated in compliance with applicable Indian laws, governm
|
||||
|
||||
### ISO 27001 Alignment
|
||||
|
||||
TLAS security controls align with ISO 27001 Annex A:
|
||||
Platform security controls align with ISO 27001 Annex A:
|
||||
|
||||
- A.5: Information security policies
|
||||
- A.6: Organization of information security
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
## Overview
|
||||
|
||||
This guide covers daily operations for department staff processing license applications through TLAS.
|
||||
This guide covers daily operations for department staff processing license applications through the platform.
|
||||
|
||||
## Logging In
|
||||
|
||||
|
||||
@@ -12,8 +12,8 @@
|
||||
|
||||
```bash
|
||||
# Clone repository
|
||||
git clone https://github.com/goa-gel/tlas.git
|
||||
cd tlas
|
||||
git clone https://github.com/goa-gel/license-authority.git
|
||||
cd license-authority
|
||||
|
||||
# Configure
|
||||
cp .env.example .env
|
||||
@@ -68,5 +68,5 @@ curl http://localhost:3000/api/health
|
||||
## Support
|
||||
|
||||
For deployment assistance:
|
||||
- Email: devops@tlas.gov.in
|
||||
- Email: devops@license.gov.in
|
||||
- Documentation: This guide
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
## Overview
|
||||
|
||||
TLAS uses OAuth 2.0 with JWT tokens for API authentication.
|
||||
The platform uses OAuth 2.0 with JWT tokens for API authentication.
|
||||
|
||||
## Obtaining Credentials
|
||||
|
||||
@@ -15,7 +15,7 @@ Contact your administrator to receive:
|
||||
|
||||
```http
|
||||
POST /auth/token HTTP/1.1
|
||||
Host: api.tlas.gov.in
|
||||
Host: api.license.gov.in
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
|
||||
grant_type=client_credentials&
|
||||
@@ -41,7 +41,7 @@ Include token in Authorization header:
|
||||
|
||||
```http
|
||||
GET /applications/APP-2026-00001 HTTP/1.1
|
||||
Host: api.tlas.gov.in
|
||||
Host: api.license.gov.in
|
||||
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...
|
||||
```
|
||||
|
||||
|
||||
@@ -79,5 +79,5 @@ interface ILicenseNFT {
|
||||
|
||||
View transactions on the block explorer:
|
||||
```
|
||||
https://explorer.tlas.gov.in/tx/{transactionHash}
|
||||
https://explorer.license.gov.in/tx/{transactionHash}
|
||||
```
|
||||
|
||||
@@ -2,15 +2,27 @@
|
||||
|
||||
## Overview
|
||||
|
||||
TLAS provides REST APIs for integrating with external systems. All APIs use JSON for request and response bodies.
|
||||
The platform provides REST APIs for integrating with external systems. All APIs use JSON for request and response bodies.
|
||||
|
||||
## Base URL
|
||||
|
||||
```
|
||||
Production: https://api.tlas.gov.in/v1
|
||||
Staging: https://api-staging.tlas.gov.in/v1
|
||||
Production: https://api.license.gov.in/v1
|
||||
Staging: https://api-staging.license.gov.in/v1
|
||||
```
|
||||
|
||||
## Interactive API Documentation
|
||||
|
||||
Explore and test APIs using our interactive Swagger UI:
|
||||
|
||||
**<ApiDocsLink />**
|
||||
|
||||
The Swagger documentation provides:
|
||||
- Complete endpoint specifications
|
||||
- Request/response schemas
|
||||
- Interactive "Try it out" functionality
|
||||
- Authentication testing
|
||||
|
||||
## Authentication
|
||||
|
||||
All API requests require authentication via Bearer token.
|
||||
@@ -25,7 +37,7 @@ Obtain tokens through the authentication endpoint. See [Authentication](/develop
|
||||
|
||||
```http
|
||||
POST /applications HTTP/1.1
|
||||
Host: api.tlas.gov.in
|
||||
Host: api.license.gov.in
|
||||
Authorization: Bearer eyJhbGc...
|
||||
Content-Type: application/json
|
||||
|
||||
@@ -92,9 +104,9 @@ X-RateLimit-Reset: 1707500000
|
||||
- Java: Maven artifact `gov.in.license:license-authority-sdk`
|
||||
|
||||
## Documentation
|
||||
|
||||
- [Authentication](/developers/authentication) - Token management
|
||||
- [Core APIs](/developers/core-apis) - Application and document APIs
|
||||
|
||||
- [Authentication](/developers/authentication) - Token management
|
||||
- [Core APIs](/developers/core-apis) - Application and document APIs
|
||||
- [Blockchain APIs](/developers/blockchain-apis) - Certificate verification
|
||||
- [Webhooks](/developers/webhooks) - Event notifications
|
||||
- [Error Handling](/developers/errors) - Error codes and handling
|
||||
|
||||
@@ -5,16 +5,16 @@
|
||||
### Installation
|
||||
|
||||
```bash
|
||||
npm install @tlas/sdk
|
||||
npm install @license-authority/sdk
|
||||
```
|
||||
|
||||
### Usage
|
||||
|
||||
```typescript
|
||||
import { TLASClient } from '@tlas/sdk';
|
||||
import { LicenseClient } from '@license-authority/sdk';
|
||||
|
||||
const client = new TLASClient({
|
||||
baseUrl: 'https://api.tlas.gov.in/v1',
|
||||
const client = new LicenseClient({
|
||||
baseUrl: 'https://api.license.gov.in/v1',
|
||||
clientId: 'your-client-id',
|
||||
clientSecret: 'your-client-secret'
|
||||
});
|
||||
@@ -38,16 +38,16 @@ const verification = await client.certificates.verify('GOA/TRADE/2026/00001');
|
||||
### Installation
|
||||
|
||||
```bash
|
||||
pip install tlas-sdk
|
||||
pip install license-authority-sdk
|
||||
```
|
||||
|
||||
### Usage
|
||||
|
||||
```python
|
||||
from tlas import TLASClient
|
||||
from license_authority import LicenseClient
|
||||
|
||||
client = TLASClient(
|
||||
base_url='https://api.tlas.gov.in/v1',
|
||||
client = LicenseClient(
|
||||
base_url='https://api.license.gov.in/v1',
|
||||
client_id='your-client-id',
|
||||
client_secret='your-client-secret'
|
||||
)
|
||||
@@ -72,8 +72,8 @@ result = client.certificates.verify('GOA/TRADE/2026/00001')
|
||||
|
||||
```xml
|
||||
<dependency>
|
||||
<groupId>gov.in.tlas</groupId>
|
||||
<artifactId>tlas-sdk</artifactId>
|
||||
<groupId>gov.in.license</groupId>
|
||||
<artifactId>license-authority-sdk</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</dependency>
|
||||
```
|
||||
@@ -81,8 +81,8 @@ result = client.certificates.verify('GOA/TRADE/2026/00001')
|
||||
### Usage
|
||||
|
||||
```java
|
||||
TLASClient client = new TLASClient.Builder()
|
||||
.baseUrl("https://api.tlas.gov.in/v1")
|
||||
LicenseClient client = new LicenseClient.Builder()
|
||||
.baseUrl("https://api.license.gov.in/v1")
|
||||
.credentials("client-id", "client-secret")
|
||||
.build();
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
## Overview
|
||||
|
||||
TLAS sends webhook notifications for key events. Configure webhook endpoints to receive real-time updates.
|
||||
The platform sends webhook notifications for key events. Configure webhook endpoints to receive real-time updates.
|
||||
|
||||
## Configuration
|
||||
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
layout: home
|
||||
|
||||
hero:
|
||||
name: "TLAS"
|
||||
text: "Tokenized License Approval System"
|
||||
tagline: Enterprise blockchain infrastructure for government license lifecycle management
|
||||
name: "License Authority"
|
||||
text: "Government of Goa, India"
|
||||
tagline: Blockchain-powered license management for secure, transparent, and tamper-proof government services
|
||||
actions:
|
||||
- theme: brand
|
||||
text: Platform Overview
|
||||
@@ -12,6 +12,9 @@ hero:
|
||||
- theme: alt
|
||||
text: API Documentation
|
||||
link: /developers/
|
||||
- theme: alt
|
||||
text: Swagger API
|
||||
link: /swagger-redirect
|
||||
|
||||
features:
|
||||
- icon: 🔐
|
||||
@@ -44,6 +47,20 @@ features:
|
||||
}
|
||||
</style>
|
||||
|
||||
<script setup>
|
||||
import { onMounted } from 'vue'
|
||||
|
||||
const apiBaseUrl = import.meta.env.VITE_API_BASE_URL || ''
|
||||
|
||||
onMounted(() => {
|
||||
const swaggerLink = document.querySelector('a[href="/swagger-redirect"]')
|
||||
if (swaggerLink) {
|
||||
swaggerLink.href = `${apiBaseUrl}/api/docs`
|
||||
swaggerLink.target = '_blank'
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
---
|
||||
|
||||
## Documentation by Role
|
||||
@@ -60,7 +77,7 @@ features:
|
||||
|
||||
## Standards & Compliance
|
||||
|
||||
TLAS is designed and implemented in accordance with:
|
||||
This platform is designed and implemented in accordance with:
|
||||
|
||||
| Standard | Scope |
|
||||
|----------|-------|
|
||||
@@ -97,7 +114,7 @@ For detailed architecture documentation, see [Solution Architecture](/overview/s
|
||||
|
||||
| Component | Version | Release Date |
|
||||
|-----------|---------|--------------|
|
||||
| TLAS Platform | 1.0.0 | February 2026 |
|
||||
| Platform | 1.0.0 | February 2026 |
|
||||
| API Version | v1 | February 2026 |
|
||||
| Documentation | 1.0.0 | February 2026 |
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
```bash
|
||||
# Daily full backup (runs at 02:00 UTC)
|
||||
pg_dump -Fc tlas_prod > /backups/tlas_$(date +%Y%m%d).dump
|
||||
pg_dump -Fc license_prod > /backups/license_$(date +%Y%m%d).dump
|
||||
|
||||
# Hourly WAL archiving
|
||||
archive_command = 'cp %p /backups/wal/%f'
|
||||
@@ -26,7 +26,7 @@ archive_command = 'cp %p /backups/wal/%f'
|
||||
|
||||
```bash
|
||||
# Create backup
|
||||
docker exec postgres pg_dump -U tlas -Fc tlas_prod > backup.dump
|
||||
docker exec postgres pg_dump -U license_app -Fc license_prod > backup.dump
|
||||
|
||||
# Verify backup
|
||||
pg_restore --list backup.dump
|
||||
@@ -41,10 +41,10 @@ pg_restore --list backup.dump
|
||||
docker-compose stop api
|
||||
|
||||
# Restore database
|
||||
pg_restore -d tlas_prod -c backup.dump
|
||||
pg_restore -d license_prod -c backup.dump
|
||||
|
||||
# Verify data
|
||||
psql -d tlas_prod -c "SELECT COUNT(*) FROM applications;"
|
||||
psql -d license_prod -c "SELECT COUNT(*) FROM applications;"
|
||||
|
||||
# Restart application
|
||||
docker-compose start api
|
||||
|
||||
@@ -16,9 +16,9 @@
|
||||
|----------|-------------|---------|
|
||||
| `DB_HOST` | PostgreSQL host | `postgres.internal` |
|
||||
| `DB_PORT` | PostgreSQL port | `5432` |
|
||||
| `DB_USER` | Database user | `tlas_app` |
|
||||
| `DB_USER` | Database user | `license_app` |
|
||||
| `DB_PASSWORD` | Database password | `<secure>` |
|
||||
| `DB_NAME` | Database name | `tlas_prod` |
|
||||
| `DB_NAME` | Database name | `license_prod` |
|
||||
|
||||
### Authentication
|
||||
|
||||
@@ -53,8 +53,8 @@ server:
|
||||
port: 3000
|
||||
cors:
|
||||
origins:
|
||||
- https://tlas.gov.in
|
||||
- https://admin.tlas.gov.in
|
||||
- https://license.gov.in
|
||||
- https://admin.license.gov.in
|
||||
|
||||
database:
|
||||
pool:
|
||||
|
||||
@@ -60,8 +60,8 @@
|
||||
|
||||
```bash
|
||||
# Clone repository
|
||||
git clone https://github.com/goa-gel/tlas.git
|
||||
cd tlas
|
||||
git clone https://github.com/goa-gel/license-authority.git
|
||||
cd license-authority
|
||||
|
||||
# Configure environment
|
||||
cp .env.example .env
|
||||
|
||||
@@ -25,8 +25,8 @@ sudo apt install docker-compose-plugin
|
||||
|
||||
```bash
|
||||
# Clone repository
|
||||
git clone https://github.com/goa-gel/tlas.git
|
||||
cd tlas
|
||||
git clone https://github.com/goa-gel/license-authority.git
|
||||
cd license-authority
|
||||
|
||||
# Copy environment template
|
||||
cp .env.example .env
|
||||
@@ -38,9 +38,9 @@ Edit `.env` with required values:
|
||||
# Database
|
||||
DB_HOST=postgres
|
||||
DB_PORT=5432
|
||||
DB_USER=tlas
|
||||
DB_USER=license_app
|
||||
DB_PASSWORD=<secure-password>
|
||||
DB_NAME=tlas
|
||||
DB_NAME=license_db
|
||||
|
||||
# JWT
|
||||
JWT_SECRET=<64-character-random-string>
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
|
||||
Access Grafana dashboards at:
|
||||
```
|
||||
https://monitoring.tlas.gov.in/grafana
|
||||
https://monitoring.license.gov.in/grafana
|
||||
```
|
||||
|
||||
Dashboards available:
|
||||
|
||||
@@ -52,7 +52,7 @@ add_header Content-Security-Policy "default-src 'self'";
|
||||
```bash
|
||||
# Run weekly
|
||||
npm audit
|
||||
docker scan tlas-api:latest
|
||||
docker scan license-api:latest
|
||||
```
|
||||
|
||||
### Security Updates
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
# Platform Overview
|
||||
|
||||
The Tokenized License Approval System (TLAS) is an enterprise platform that transforms government licensing operations through blockchain-based credential issuance and configurable workflow automation.
|
||||
License Authority is an enterprise platform that transforms government licensing operations through blockchain-based credential issuance and configurable workflow automation.
|
||||
|
||||
## Context
|
||||
|
||||
Government licensing processes across India handle millions of applications annually. These processes involve multiple stakeholders, complex approval hierarchies, and strict compliance requirements. Traditional systems face persistent challenges that impact both operational efficiency and citizen trust.
|
||||
|
||||
TLAS addresses these challenges through a purpose-built platform that combines workflow automation with cryptographic verification.
|
||||
The platform addresses these challenges through a purpose-built platform that combines workflow automation with cryptographic verification.
|
||||
|
||||
## Platform Objectives
|
||||
|
||||
@@ -22,7 +22,7 @@ TLAS addresses these challenges through a purpose-built platform that combines w
|
||||
|
||||
### Tokenized License Certificates
|
||||
|
||||
Every license issued through TLAS is minted as a Non-Fungible Token (NFT) on a private Hyperledger Besu blockchain. This provides:
|
||||
Every license issued through the platform is minted as a Non-Fungible Token (NFT) on a private Hyperledger Besu blockchain. This provides:
|
||||
|
||||
- **Cryptographic authenticity**: Certificates are digitally signed and verifiable
|
||||
- **Tamper evidence**: Any modification attempt is detectable
|
||||
@@ -51,11 +51,11 @@ Administrators and department heads access real-time visibility into:
|
||||
|
||||
## Deployment Model
|
||||
|
||||
TLAS operates as a multi-tenant platform with department-level isolation:
|
||||
The platform operates as a multi-tenant platform with department-level isolation:
|
||||
|
||||
```
|
||||
┌─────────────────────────────────┐
|
||||
│ TLAS Platform │
|
||||
│ License Authority │
|
||||
├─────────────────────────────────┤
|
||||
┌───────────┼───────────┬───────────┐ │
|
||||
│ │ │ │ │
|
||||
@@ -77,7 +77,7 @@ TLAS operates as a multi-tenant platform with department-level isolation:
|
||||
|
||||
## Integration Points
|
||||
|
||||
TLAS integrates with government and third-party services:
|
||||
The platform integrates with government and third-party services:
|
||||
|
||||
| Integration | Purpose | Protocol |
|
||||
|-------------|---------|----------|
|
||||
@@ -98,7 +98,7 @@ TLAS integrates with government and third-party services:
|
||||
|
||||
## Navigation
|
||||
|
||||
- [Problem Statement](/overview/problem) - Challenges addressed by TLAS
|
||||
- [Problem Statement](/overview/problem) - Challenges addressed by this platform
|
||||
- [Solution Architecture](/overview/solution) - Technical design and components
|
||||
- [Key Capabilities](/overview/capabilities) - Feature deep-dive
|
||||
- [Technology Stack](/overview/technology) - Implementation technologies
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────┐
|
||||
│ TLAS Platform │
|
||||
│ License Authority Platform │
|
||||
├─────────────────────────────────────────────────────────────────────┤
|
||||
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
||||
│ │ Applicant │ │ Department │ │ Admin │ │
|
||||
|
||||
@@ -1,13 +1,51 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="40" height="40">
|
||||
<!-- Government of Goa Emblem Style -->
|
||||
<defs>
|
||||
<linearGradient id="grad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" style="stop-color:#1e3a5f"/>
|
||||
<stop offset="100%" style="stop-color:#2563eb"/>
|
||||
<linearGradient id="goldGrad" x1="0%" y1="0%" x2="0%" y2="100%">
|
||||
<stop offset="0%" style="stop-color:#D4AF37"/>
|
||||
<stop offset="50%" style="stop-color:#C5A028"/>
|
||||
<stop offset="100%" style="stop-color:#B8962A"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<rect x="10" y="10" width="80" height="80" rx="12" fill="url(#grad)"/>
|
||||
<path d="M30 35 L50 25 L70 35 L70 65 L50 75 L30 65 Z" fill="none" stroke="white" stroke-width="3"/>
|
||||
<circle cx="50" cy="50" r="8" fill="white"/>
|
||||
<path d="M50 42 L50 35" stroke="white" stroke-width="2"/>
|
||||
<path d="M50 58 L50 65" stroke="white" stroke-width="2"/>
|
||||
|
||||
<!-- Circular border -->
|
||||
<circle cx="50" cy="50" r="46" fill="none" stroke="#1a365d" stroke-width="3"/>
|
||||
<circle cx="50" cy="50" r="42" fill="#1a365d"/>
|
||||
|
||||
<!-- Ashoka Chakra (24 spokes wheel) -->
|
||||
<circle cx="50" cy="50" r="18" fill="none" stroke="url(#goldGrad)" stroke-width="2.5"/>
|
||||
<circle cx="50" cy="50" r="5" fill="url(#goldGrad)"/>
|
||||
|
||||
<!-- 24 spokes simplified to 12 for clarity -->
|
||||
<g stroke="url(#goldGrad)" stroke-width="1.5">
|
||||
<line x1="50" y1="32" x2="50" y2="38"/>
|
||||
<line x1="50" y1="62" x2="50" y2="68"/>
|
||||
<line x1="32" y1="50" x2="38" y2="50"/>
|
||||
<line x1="62" y1="50" x2="68" y2="50"/>
|
||||
<line x1="37.3" y1="37.3" x2="41.5" y2="41.5"/>
|
||||
<line x1="58.5" y1="58.5" x2="62.7" y2="62.7"/>
|
||||
<line x1="62.7" y1="37.3" x2="58.5" y2="41.5"/>
|
||||
<line x1="41.5" y1="58.5" x2="37.3" y2="62.7"/>
|
||||
<line x1="43.1" y1="33.5" x2="45.2" y2="39"/>
|
||||
<line x1="54.8" y1="61" x2="56.9" y2="66.5"/>
|
||||
<line x1="56.9" y1="33.5" x2="54.8" y2="39"/>
|
||||
<line x1="45.2" y1="61" x2="43.1" y2="66.5"/>
|
||||
</g>
|
||||
|
||||
<!-- Three lions silhouette (simplified) -->
|
||||
<g fill="url(#goldGrad)">
|
||||
<!-- Center lion head -->
|
||||
<ellipse cx="50" cy="22" rx="8" ry="6"/>
|
||||
<rect x="46" y="26" width="8" height="4" rx="1"/>
|
||||
<!-- Left lion suggestion -->
|
||||
<ellipse cx="36" cy="24" rx="5" ry="4"/>
|
||||
<!-- Right lion suggestion -->
|
||||
<ellipse cx="64" cy="24" rx="5" ry="4"/>
|
||||
</g>
|
||||
|
||||
<!-- Base/Abacus -->
|
||||
<rect x="30" y="76" width="40" height="4" rx="1" fill="url(#goldGrad)"/>
|
||||
|
||||
<!-- Text: GOA -->
|
||||
<text x="50" y="88" font-family="Arial, sans-serif" font-size="8" font-weight="bold" fill="url(#goldGrad)" text-anchor="middle">GOA</text>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 651 B After Width: | Height: | Size: 2.0 KiB |
@@ -5,8 +5,8 @@
|
||||
| Environment | Purpose | URL |
|
||||
|-------------|---------|-----|
|
||||
| Development | Local testing | localhost:4200 |
|
||||
| Staging | Pre-production validation | staging.tlas.gov.in |
|
||||
| Production | Live system | tlas.gov.in |
|
||||
| Staging | Pre-production validation | staging.license.gov.in |
|
||||
| Production | Live system | license.gov.in |
|
||||
|
||||
## Test Categories
|
||||
|
||||
@@ -47,12 +47,12 @@ Verify security controls:
|
||||
|
||||
| Role | Username | Password |
|
||||
|------|----------|----------|
|
||||
| Admin | admin@tlas.gov.in | (contact IT) |
|
||||
| Department | dept.test@tlas.gov.in | (contact IT) |
|
||||
| Admin | admin@license.gov.in | (contact IT) |
|
||||
| Department | dept.test@license.gov.in | (contact IT) |
|
||||
| Applicant | (use DigiLocker sandbox) | - |
|
||||
|
||||
## Reporting Issues
|
||||
|
||||
Report test failures to:
|
||||
- Email: qa@tlas.gov.in
|
||||
- Email: qa@license.gov.in
|
||||
- Include: Steps to reproduce, expected vs actual result, screenshots
|
||||
|
||||
@@ -23,8 +23,17 @@ async function bootstrap(): Promise<void> {
|
||||
const corsOrigin = configService.get<string>('app.corsOrigin', 'http://localhost:3000');
|
||||
const swaggerEnabled = configService.get<boolean>('app.swaggerEnabled', true);
|
||||
|
||||
// Security middleware
|
||||
app.use(helmet());
|
||||
// Security middleware - configure helmet based on environment
|
||||
const isProduction = configService.get<string>('NODE_ENV') === 'production';
|
||||
const useHttps = configService.get<boolean>('app.useHttps', false);
|
||||
|
||||
app.use(helmet({
|
||||
contentSecurityPolicy: isProduction ? undefined : false,
|
||||
crossOriginEmbedderPolicy: false,
|
||||
crossOriginOpenerPolicy: false,
|
||||
crossOriginResourcePolicy: false,
|
||||
hsts: useHttps, // Only enable HSTS when using HTTPS
|
||||
}));
|
||||
app.use(compression());
|
||||
|
||||
// CORS configuration - Allow configured origin plus local development origins
|
||||
@@ -33,6 +42,8 @@ async function bootstrap(): Promise<void> {
|
||||
'http://localhost:4200',
|
||||
'http://localhost:3000',
|
||||
'http://localhost:8080',
|
||||
'http://104.211.94.205:3001',
|
||||
'http://104.211.94.205',
|
||||
].filter(Boolean);
|
||||
app.enableCors({
|
||||
origin: (origin, callback) => {
|
||||
|
||||
@@ -44,7 +44,7 @@ import { BlockchainExplorerMiniComponent } from '../../shared/components';
|
||||
</div>
|
||||
<div class="header-text">
|
||||
<h1>Admin Portal</h1>
|
||||
<p class="subtitle">Manage the Goa GEL Blockchain Platform</p>
|
||||
<p class="subtitle">Manage the License Authority Platform</p>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
@@ -31,7 +31,7 @@ import { AdminStatsDto } from '../../../api/models';
|
||||
<div class="welcome-text">
|
||||
<span class="greeting">Admin Dashboard</span>
|
||||
<h1>Platform Overview</h1>
|
||||
<p class="subtitle">Monitor and manage the Goa GEL Blockchain Platform</p>
|
||||
<p class="subtitle">Monitor and manage the License Authority Platform</p>
|
||||
</div>
|
||||
<div class="quick-actions">
|
||||
<button mat-raised-button class="action-btn primary" routerLink="/admin">
|
||||
|
||||
@@ -96,8 +96,8 @@
|
||||
/>
|
||||
</div>
|
||||
<div class="brand-text">
|
||||
<span class="brand-name">Government of Goa</span>
|
||||
<span class="brand-subtitle">Blockchain e-Licensing Platform</span>
|
||||
<span class="brand-name">License Authority</span>
|
||||
<span class="brand-subtitle">Government of Goa, India</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="nav-status">
|
||||
@@ -186,7 +186,7 @@
|
||||
<!-- Footer -->
|
||||
<footer class="landing-footer" role="contentinfo">
|
||||
<div class="footer-content">
|
||||
<p class="copyright">© {{ currentYear }} Government of Goa, India. All rights reserved.</p>
|
||||
<p class="copyright">© {{ currentYear }} License Authority - Government of Goa, India. All rights reserved.</p>
|
||||
<div class="footer-links">
|
||||
<a href="/policies" aria-label="Website Policies">Policies</a>
|
||||
<a href="/terms" aria-label="Terms and Conditions">Terms</a>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// =============================================================================
|
||||
// GOA GEL LANDING PAGE - World-Class Blockchain Government Portal
|
||||
// LICENSE AUTHORITY LANDING PAGE - Government of Goa, India
|
||||
// Immersive, Graphical, Premium Design
|
||||
// =============================================================================
|
||||
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Goa GEL - Government e-Licensing Platform | Government of Goa</title>
|
||||
<title>License Authority | Government of Goa, India</title>
|
||||
<base href="/">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="Official Government of Goa Blockchain-based Document Verification and e-Licensing Platform. Apply for licenses, track applications, and verify documents securely.">
|
||||
<meta name="keywords" content="Government of Goa, e-Licensing, Blockchain, License, Permit, Government Services, Digital India">
|
||||
<meta name="description" content="License Authority - Official Government of Goa blockchain-powered license management platform. Apply for licenses, track applications, and verify documents securely.">
|
||||
<meta name="keywords" content="License Authority, Government of Goa, India, Blockchain, License, Permit, Government Services, Digital India">
|
||||
<meta name="author" content="Government of Goa">
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="theme-color" content="#1D0A69">
|
||||
@@ -15,7 +15,7 @@
|
||||
<meta name="accessibility" content="WCAG 2.1 Level AA">
|
||||
|
||||
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
||||
<link rel="canonical" href="https://gel.goa.gov.in">
|
||||
<link rel="canonical" href="https://license.goa.gov.in">
|
||||
|
||||
<!-- Google Fonts: Noto Sans (DBIM Mandatory) + Material Icons -->
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
@@ -27,7 +27,7 @@
|
||||
<!-- Noscript fallback for accessibility -->
|
||||
<noscript>
|
||||
<div style="padding: 20px; text-align: center; background: #FFC107; color: #150202;">
|
||||
JavaScript is required to use the Government of Goa e-Licensing Platform.
|
||||
JavaScript is required to use the License Authority platform.
|
||||
Please enable JavaScript in your browser settings.
|
||||
</div>
|
||||
</noscript>
|
||||
|
||||
Reference in New Issue
Block a user