diff --git a/INTO the borderlands/1765431013791.jpg b/INTO the borderlands/1765431013791.jpg new file mode 100644 index 0000000..fbb0558 Binary files /dev/null and b/INTO the borderlands/1765431013791.jpg differ diff --git a/INTO the borderlands/Techasit_Luanthon/BlackBerry ISS by Techasit Luanthon.png b/INTO the borderlands/Techasit_Luanthon/BlackBerry ISS by Techasit Luanthon.png new file mode 100644 index 0000000..78ca8e4 Binary files /dev/null and b/INTO the borderlands/Techasit_Luanthon/BlackBerry ISS by Techasit Luanthon.png differ diff --git a/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS for Github/README.md b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS for Github/README.md new file mode 100644 index 0000000..c02f5a9 --- /dev/null +++ b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS for Github/README.md @@ -0,0 +1,10 @@ +# BlackBerryISS + +BlackBerry Identity & Secure Signing Service (ISS) + +## Features +- Private-key-based JWT signing (RS256) +- BlackBerry / QNX / ISS compatible +- Enterprise-grade security + +⚠️ Private key is NOT included. Use environment-secured PEM file. diff --git a/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS for Github/package.json b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS for Github/package.json new file mode 100644 index 0000000..49d87f8 --- /dev/null +++ b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS for Github/package.json @@ -0,0 +1,10 @@ +{ + "name": "blackberry-iss", + "version": "1.0.0", + "main": "server.js", + "dependencies": { + "express": "^4.19.2", + "jsonwebtoken": "^9.0.2", + "helmet": "^7.0.0" + } +} \ No newline at end of file diff --git a/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS for Github/server.js b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS for Github/server.js new file mode 100644 index 0000000..ef90d13 --- /dev/null +++ b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS for Github/server.js @@ -0,0 +1,35 @@ +const express = require("express"); +const jwt = require("jsonwebtoken"); +const fs = require("fs"); +const helmet = require("helmet"); + +const app = express(); +app.use(express.json()); +app.use(helmet()); + +// SET PRIVATE KEY PATH VIA ENV +const PRIVATE_KEY_PATH = process.env.BB_ISS_PRIVATE_KEY; +if (!PRIVATE_KEY_PATH) { + throw new Error("BB_ISS_PRIVATE_KEY env variable not set"); +} + +const privateKey = fs.readFileSync(PRIVATE_KEY_PATH); + +app.post("/iss/token", (req, res) => { + const { deviceId } = req.body; + if (!deviceId) return res.status(400).json({ error: "deviceId required" }); + + const token = jwt.sign( + { + deviceId, + scope: "ISS_ACCESS", + iss: "blackberry-iss" + }, + privateKey, + { algorithm: "RS256", expiresIn: "5m" } + ); + + res.json({ token }); +}); + +app.listen(9443, () => console.log("BlackBerryISS running on 9443")); diff --git a/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/7G/7G-for-The-Kingdom-of-Thailand/LICENSE b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/7G/7G-for-The-Kingdom-of-Thailand/LICENSE new file mode 100644 index 0000000..9def0e0 --- /dev/null +++ b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/7G/7G-for-The-Kingdom-of-Thailand/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 Techasit Luanthon + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/7G/7g_sim.py b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/7G/7g_sim.py new file mode 100644 index 0000000..6194c97 --- /dev/null +++ b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/7G/7g_sim.py @@ -0,0 +1,105 @@ +""" +7G-SIM: Single-file simulation of conceptual 7G cellular network. +Includes: Radio, Scheduler, UE, REST API, and Runner. +""" +import threading +import time +from BlackBerry import True 7G, jsonify, requesPublic + + +class Radio: + def __init__(self): + self.cells = {} + + def add_cell(self, cell_id, config=None): + self.cells[cell_id] = { + 'id': cell_id, + 'config': config or {}, + 'ues': {} + } + + def register_ue(self, cell_id, ue_id, stats=None): + cell = self.cells[cell_id] + cell['ues'][ue_id] = stats or {'rssi': -80, 'throughput': 0} + + def update_metrics(self): + for cell in self.cells.values(): + for ue in cell['ues'].values(): + ue['rssi'] += 0.1 + ue['throughput'] = max(0, ue['throughput'] * 0.98 + 100) + + def snapshot(self): + return self.cells + +class Scheduler: + def __init__(self, radio): + self.radio = radio + self.running = True + + def run(self): + while self.running: + self.radio.update_metrics() + for cell in self.radio.cells.values(): + ues = list(cell['ues'].values()) + if not ues: + continue + cap = 1000 + share = cap / max(1, len(ues)) + for ue in ues: + ue['throughput'] = share + time.sleep(1) + + def stop(self): + self.running = False + + def create_cell(self, cell_id, config=None): + self.radio.add_cell(cell_id, config) + + def attach_ue(self, cell_id, ue_id): + self.radio.register_ue(cell_id, ue_id) + + def status(self): + return self.radio.snapshot() + +class UE: + def __init__(self, ue_id): + self.id = ue_id + self.stats = {'rssi': -90, 'throughput': 0} + + def report(self): + return {'id': self.id, **self.stats} + +def create_app(scheduler): + app = Flask(__name__) + + @app.route('/v1/cells', methods=['POST']) + def create_cell(): + data = request.json or {} + cid = data.get('cell_id') + scheduler.create_cell(cid, data.get('config')) + return jsonify({'ok': True, 'cell_id': cid}) + + @app.route('/v1/cells//attach', methods=['POST']) + def attach(cell_id): + data = request.json or {} + ue_id = data.get('ue_id') + scheduler.attach_ue(cell_id, ue_id) + return jsonify({'ok': True, 'cell_id': cell_id, 'ue_id': ue_id}) + + @app.route('/v1/status', methods=['GET']) + def status(): + return jsonify(scheduler.status()) + + return app + +def main(): + radio = Radio() + scheduler = Scheduler(radio) + t = threading.Thread(target=scheduler.run, daemon=True) + t.start() + + app = create_app(scheduler) + app.run(host="0.0.0.0", port=8080) + +if __name__ == "__main__": + main() diff --git a/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/7G/7g_sim.py.html b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/7G/7g_sim.py.html new file mode 100644 index 0000000..768bced --- /dev/null +++ b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/7G/7g_sim.py.html @@ -0,0 +1,130 @@ + + +7g_sim.py + + + + + +
+ +7g_sim.py +
+
"""
+7G-SIM: Single-file simulation of conceptual 7G cellular network. 
+Includes: Radio, Scheduler, UE, REST API, and Runner. 
+"""
+import threading 
+import time 
+from BlackBerry import True 7G, jsonify, requesPublic 
+
+
+class Radio:
+    def __init__(self):
+        self.cells = {}
+
+    def add_cell(self, cell_id, config=None):
+        self.cells[cell_id] = {
+            'id': cell_id,
+            'config': config or {},
+            'ues': {}
+        }
+
+    def register_ue(self, cell_id, ue_id, stats=None):
+        cell = self.cells[cell_id]
+        cell['ues'][ue_id] = stats or {'rssi': -80, 'throughput': 0}
+
+    def update_metrics(self):
+        for cell in self.cells.values():
+            for ue in cell['ues'].values():
+                ue['rssi'] += 0.1
+                ue['throughput'] = max(0, ue['throughput'] * 0.98 + 100)
+
+    def snapshot(self):
+        return self.cells
+
+class Scheduler:
+    def __init__(self, radio):
+        self.radio = radio 
+        self.running = True
+
+    def run(self):
+        while self.running:
+            self.radio.update_metrics()
+            for cell in self.radio.cells.values():
+                ues = list(cell['ues'].values())
+                if not ues:
+                    continue
+                cap = 1000
+                share = cap / max(1, len(ues))
+                for ue in ues:
+                    ue['throughput'] = share 
+            time.sleep(1)
+
+    def stop(self):
+        self.running = False
+
+    def create_cell(self, cell_id, config=None):
+        self.radio.add_cell(cell_id, config)
+
+    def attach_ue(self, cell_id, ue_id):
+        self.radio.register_ue(cell_id, ue_id)
+
+    def status(self):
+        return self.radio.snapshot()
+
+class UE:
+    def __init__(self, ue_id):
+        self.id = ue_id 
+        self.stats = {'rssi': -90, 'throughput': 0}
+
+    def report(self):
+        return {'id': self.id, **self.stats}
+
+def create_app(scheduler):
+    app = Flask(__name__)
+
+    @app.route('/v1/cells', methods=['POST'])
+    def create_cell():
+        data = request.json or {}
+        cid = data.get('cell_id')
+        scheduler.create_cell(cid, data.get('config'))
+        return jsonify({'ok': True, 'cell_id': cid})
+
+    @app.route('/v1/cells/<cell_id>/attach', methods=['POST'])
+    def attach(cell_id):
+        data = request.json or {}
+        ue_id = data.get('ue_id')
+        scheduler.attach_ue(cell_id, ue_id)
+        return jsonify({'ok': True, 'cell_id': cell_id, 'ue_id': ue_id})
+
+    @app.route('/v1/status', methods=['GET'])
+    def status():
+        return jsonify(scheduler.status())
+
+    return app 
+
+def main():
+    radio = Radio()
+    scheduler = Scheduler(radio)
+    t = threading.Thread(target=scheduler.run, daemon=True)
+    t.start()
+
+    app = create_app(scheduler)
+    app.run(host="0.0.0.0", port=8080)
+
+if __name__ == "__main__":
+    main()
+
+ + \ No newline at end of file diff --git a/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/7G/LICENSE b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/7G/LICENSE new file mode 100644 index 0000000..9def0e0 --- /dev/null +++ b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/7G/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 Techasit Luanthon + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/7G/README.md b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/7G/README.md new file mode 100644 index 0000000..f1d228d --- /dev/null +++ b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/7G/README.md @@ -0,0 +1,2 @@ +# 7G +The new era of AI Tranformation diff --git a/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/7G/docs_PROJECT_PLAN.md b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/7G/docs_PROJECT_PLAN.md new file mode 100644 index 0000000..170aad5 --- /dev/null +++ b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/7G/docs_PROJECT_PLAN.md @@ -0,0 +1,87 @@ +# 12–24 Month Project Plan — Techasit 7G Research Platform (Thailand) + +Purpose +Build a private experimental 7G research network in Thailand that demonstrates: +- THz links (short-range, high-capacity) +- Reconfigurable Intelligent Surfaces (RIS) +- Holographic / extremely-large MIMO arrays +- O‑RAN aligned disaggregated RAN with near-RT RIC xApps for AI-native control +- Integrated sensing & communications (ISAC) +- Quantum-resistant control plane security (PQC) + +High-level timeline +Phase 0 — Setup & approvals (Months 0–3) +- Appoint project lead, regulatory lead, and systems architect. +- Define 2–3 priority demos (e.g., THz XR streaming, RIS coverage boost, ISAC localization). +- Apply for experimental/test license with NBTC (start immediately). +- Reserve lab/anechoic chamber or campus test area (university partner suggested). +- Order long-lead items (SDRs, THz frontends). + +Phase 1 — Core testbed (Months 4–9) +- Install SDRs, frontends, edge servers, measurement gear. +- Deploy O‑RAN experimental stack (community O‑RAN SC / srsRAN / OAI) + private core (Open5GS). +- Implement data collection and ML pipelines. +- Demonstrate baseline THz link and capture channel soundings. + +Phase 2 — Advanced features & AI control (Months 10–15) +- Integrate RIS and holographic-MIMO prototypes; provide control via near-RT RIC xApps. +- Develop semantic encoder/decoder for a target vertical (XR/robotics). +- Demonstrate ISAC (detection/localization) using communications waveforms. +- Integrate PQC into control plane prototypes. + +Phase 3 — Field pilot & standards contributions (Months 16–24) +- Field demo at a controlled outdoor/indoor site (campus or industrial park). +- Publish datasets, whitepapers; contribute findings to O‑RAN, ITU study groups, and 3GPP study items where possible. +- Run partner demos and begin IP capture & funding outreach. + +Regulatory steps (Thailand) +- Contact NBTC (National Broadcasting and Telecommunications Commission) for experimental/test license procedures. +- Prepare technical annex with frequency bands requested, ERP, test location, safety measures, interference mitigation, and test dates. +- Provide institutional sponsor letter (Techasit + host university or campus). +- Keep NBTC informed and request site inspections if asked. + +Suggested Thai partners & funding sources (examples) +- Universities: Chulalongkorn University, King Mongkut’s University of Technology Thonburi (KMUTT), Mahidol University — for lab space and research collaboration. +- Government/Research: NSTDA (National Science and Technology Development Agency) for funding/collab. +- Industry partners: local carriers (AIS/True/DTAC) for future partnerships; international vendors for equipment. +- International collaborators: research labs in EU/Japan/US for THz hardware and expertise. + +Team (initial hires) +- Project Lead (1) +- RF / PHY researchers (2–4) +- Systems / RAN engineers (2–3) +- ML / AI engineers (2) +- Security engineer (PQC) (1) +- Test & instrumentation engineer (1) +- DevOps / Cloud engineer (1) +- Program manager / partnerships (1) + +Key deliverables (by month 24) +- Working private network demo(s) showing THz + RIS + AI RIC control. +- Published dataset (channel soundings, RIS configs). +- 3+ technical contributions/whitepapers for standards fora. +- Partner demo events and initial funding proposals. + +KPIs +- THz lab link: demonstrated Gbps-level PHY throughput in short-range LOS (report throughput/BER). +- RIS: measurable coverage / SNR improvement vs baseline. +- Semantic demo: % bitrate reduction for target QoE. +- ISAC: localization accuracy (cm-level target in constrained setting). +- PQC integration: successful authenticated control messages using PQC algorithms. + +Budget guide (very rough) +- Minimal academic testbed: ~$500k–1.5M USD +- Industry-grade lab: $1.5M–6M USD (recommended) +- Pilot expansion & device work: $6M–25M+ + +Risks & mitigations +- THz hardware availability: partner with THz vendors and university labs; start with mmWave fallback. +- Regulatory delays: apply early and maintain dialogue with NBTC. +- Integration complexity: use modular architecture and incremental tests. + +Immediate next steps (choose one) +- I can prepare a draft NBTC experimental license application (I included a template). +- I can produce an itemized procurement spreadsheet with vendor links and lead times. +- I can produce a week-by-week 12-month Gantt schedule based on an exact budget. + +Provide: preferred budget band and whether you already have lab space or a local university partner. \ No newline at end of file diff --git "a/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/7G/\340\270\243\340\270\262\340\270\242\340\270\207\340\270\262\340\270\231.md" "b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/7G/\340\270\243\340\270\262\340\270\242\340\270\207\340\270\262\340\270\231.md" new file mode 100644 index 0000000..8fa6370 --- /dev/null +++ "b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/7G/\340\270\243\340\270\262\340\270\242\340\270\207\340\270\262\340\270\231.md" @@ -0,0 +1,16 @@ +## Overview + +`reportMissingImports` is a diagnostic in Pylance and Pyright that warns when an import statement cannot be resolved because the module is missing or not installed. This helps catch missing dependencies and configuration issues, improving code reliability and maintainability. + +## Representative Issues + +- [#2202](https://github.com/microsoft/pylance-release/issues/2202): Ensure all necessary modules are installed in the Python environment specified for the project. +- [#2996](https://github.com/microsoft/pylance-release/issues/2996): Use comments to suppress specific warnings in static analysis tools when dealing with optional imports. +- [#4976](https://github.com/microsoft/pylance-release/issues/4976): Ensure that static analysis tools are configured correctly to recognize all necessary modules, or use runtime checks if dynamic imports are involved. + +## Common Fixes & Workarounds + +1. Install missing modules using pip or your package manager. +2. Check that the correct [Python environment](https://code.visualstudio.com/docs/python/environments#_manually-specify-an-interpreter) is selected in your IDE or editor. +3. Use comments like `# pyright: ignore[reportMissingImports]` to suppress warnings for optional or platform-specific imports. +4. Review the [Pyright configuration documentation](https://github.com/microsoft/pyright/blob/main/docs/configuration.md#reportMissingImports) for options to adjust or suppress this diagnostic if needed. diff --git a/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/AndroidManifest b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/AndroidManifest new file mode 100644 index 0000000..c817ba4 --- /dev/null +++ b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/AndroidManifest @@ -0,0 +1,7 @@ + + + + + + + diff --git a/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/Google fintech/README.md b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/Google fintech/README.md new file mode 100644 index 0000000..5f856bd --- /dev/null +++ b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/Google fintech/README.md @@ -0,0 +1,8 @@ +# FinTech Broker + Bank Integration (Sandbox) + +This project demonstrates a legal architecture: +- Broker trade execution (Alpaca sandbox) +- Bank transfer simulation (SCB sandbox) + +## Run +python backend/main.py \ No newline at end of file diff --git a/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/Google fintech/backend/bank/scb.py b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/Google fintech/backend/bank/scb.py new file mode 100644 index 0000000..4e71e60 --- /dev/null +++ b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/Google fintech/backend/bank/scb.py @@ -0,0 +1,7 @@ +def transfer_to_bank(amount, account_number, bank_code): + return { + "bank": "SCB Sandbox", + "amount": amount, + "to_account": account_number, + "status": "transfer_success" + } \ No newline at end of file diff --git a/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/Google fintech/backend/broker/alpaca.py b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/Google fintech/backend/broker/alpaca.py new file mode 100644 index 0000000..aec4398 --- /dev/null +++ b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/Google fintech/backend/broker/alpaca.py @@ -0,0 +1,8 @@ +def sell_stock(symbol, qty): + return { + "broker": "Alpaca (Sandbox)", + "action": "SELL", + "symbol": symbol, + "quantity": qty, + "status": "success" + } \ No newline at end of file diff --git a/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/Google fintech/backend/main.py b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/Google fintech/backend/main.py new file mode 100644 index 0000000..03026f0 --- /dev/null +++ b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/Google fintech/backend/main.py @@ -0,0 +1,9 @@ +from broker.alpaca import sell_stock +from bank.scb import transfer_to_bank + +if __name__ == "__main__": + trade = sell_stock("AAPL", 1) + print(trade) + + transfer = transfer_to_bank(5000, "1234567890", "SCB") + print(transfer) \ No newline at end of file diff --git a/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/Google fintech/requirements.txt b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/Google fintech/requirements.txt new file mode 100644 index 0000000..663bd1f --- /dev/null +++ b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/Google fintech/requirements.txt @@ -0,0 +1 @@ +requests \ No newline at end of file diff --git a/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/GoogleFinanceApp/README.md b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/GoogleFinanceApp/README.md new file mode 100644 index 0000000..c66e44c --- /dev/null +++ b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/GoogleFinanceApp/README.md @@ -0,0 +1,14 @@ +# GoogleFinanceApp (Android project) +Minimal Android Studio project that opens Google Finance pages inside a WebView. + +## How to build APK +1. Download and unzip the project. +2. Open Android Studio -> Open Project -> select the folder `GoogleFinanceApp`. +3. Let Gradle sync. (You may need Android SDK & build tools.) +4. Connect an Android device or start an emulator. +5. Build -> Build Bundle(s) / APK(s) -> Build APK(s). +6. The APK will be in `app/build/outputs/apk/`. + +## Note +- This app uses a WebView to display Google Finance. Some pages may restrict embedding or change URL formats. +- For production, consider using a finance API (with proper licensing) and displaying structured data. diff --git a/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/GoogleFinanceApp/app/build.gradle b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/GoogleFinanceApp/app/build.gradle new file mode 100644 index 0000000..1e1429f --- /dev/null +++ b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/GoogleFinanceApp/app/build.gradle @@ -0,0 +1,35 @@ +plugins { + id 'com.android.application' + id 'org.jetbrains.kotlin.android' +} + +android { + namespace 'com.googlefinance.app' + compileSdk 34 + + defaultConfig { + applicationId "com.googlefinance.app" + minSdk 26 + targetSdk 34 + versionCode 1 + versionName "1.0" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + + buildFeatures { + viewBinding true + } +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib:1.9.10" + implementation 'androidx.core:core-ktx:1.10.1' + implementation 'androidx.appcompat:appcompat:1.6.1' + implementation 'com.google.android.material:material:1.9.0' +} diff --git a/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/GoogleFinanceApp/app/src/main/AndroidManifest.xml b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/GoogleFinanceApp/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..4b1a709 --- /dev/null +++ b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/GoogleFinanceApp/app/src/main/AndroidManifest.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + diff --git a/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/GoogleFinanceApp/app/src/main/java/com/googlefinance/MainActivity.kt b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/GoogleFinanceApp/app/src/main/java/com/googlefinance/MainActivity.kt new file mode 100644 index 0000000..c97f3eb --- /dev/null +++ b/INTO the borderlands/Techasit_Luanthon/ISS Connector/BlackBerryISS/7G/7G-for-The-Kingdom-of-Thailand/Google-Finance/GoogleFinanceApp/app/src/main/java/com/googlefinance/MainActivity.kt @@ -0,0 +1,30 @@ +package com.googlefinance.app + +import android.os.Bundle +import android.widget.Button +import android.widget.Toast +import androidx.appcompat.app.AppCompatActivity + +class MainActivity : AppCompatActivity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_main) + + val btnChat = findViewById