[๐งโ๐ป] Secret Messenger ๊ฐ๋ฐ ์ผ์ง #3: Roadmap Update: Phase 1-6
โจ GPT์ ์์ฝ ใ
Secret Messenger ํ๋ก์ ํธ์ ์คํ ๊ณํ์ Phase 1~6๊น์ง ์ ๊ตํ๊ฒ ํ์ฅํ๋ฉฐ, ๊ฐ๋ฐ ์คํ์ Flutter Web + Django ์กฐํฉ์ผ๋ก ๊ณ ๋ํํ๊ณ , ์์ฅ ์ธํฐํ์ด์ค ๋ฐ ์๋ฒ ๋ฐฐํฌ ํ๋ฆ์ ์ฒด๊ณํํ ํ๋ฃจ.
๐ Roadmap
Execution plan for a secure, disguised Flutter Web + Django messenger targeting heavily monitored, high-risk individuals in mainland China โspecifically undocumented North Korean escapeesโ where concealment and data protection are paramount.
The application is camouflaged as a basic online calculator while providing real-time chat, file sharing, and one-way information broadcasts under the hood.
โ Phase 1 โ Planning & Architecture
- 
๐ง  Define project goal and threat model
    - Audience: undocumented North Korean escapees in China
- Mission: browser-based, install-free, secure and disguised messaging tool
- UX disguise: calculator-style interface
 
- 
๐ค Select AI-driven dev workflow
    - Use GPT-4o + o1 for design, codegen, and iteration
- Follow โVibe Codingโ โ fast, natural-language dev via AI
 
- 
โ๏ธ Finalize tech stack
    - Frontend: Flutter Web (Material 3, go_router, Riverpod, http)
- Backend: Django + Django REST Framework (Django 5.x)
- Deployment: Single VPS container (static + API), with optional Cloudflare proxy
 
- 
๐ Acquire domain
    - 
Domain: ใ ใ ใ .net
- Cost: โฉ18,000/year via Korean registrar
- Purpose: visual camouflage as an online calculator
 
- 
Domain: 
โ Phase 2 โ VPS Setup & Base Deployment
- 
    ๐ณ Create a Vultr account and pay $10. 
- 
๐ Create a VPS instance
    - Region: Singapore (best GFW performance on Vultr)
- OS: Ubuntu 22.04 x64
- Plan: 1vCPU / 1GB RAM ($5/month)
- SSH key or password access setup
 
- 
    ๐ Access and initialize ssh root@<IP> apt update && apt upgrade -y apt install python3-pip python3-venv nginx git ufw -y ufw allow OpenSSH && ufw allow 'Nginx Full' && ufw enable
- 
    ๐ Prepare project directory and virtualenv mkdir /srv/ใ ใ ใ  && cd /srv/ใ ใ ใ  python3 -m venv venv && source venv/bin/activate pip install django djangorestframework whitenoise gunicorn
Note: A Cloudflare proxy is recommended to hide the VPS IP and absorb DDoS.
โ Phase 3 โ Project Initialization (Django + Flutter)
๐ง Django Setup
- 
django-admin startproject stealthcore .- Creates stealthcore/folder andmanage.pyinside/srv/ใ ใ ใ .
 
- Creates 
- 
python manage.py startapp api- Creates the api/folder for your custom logic (message handling, file uploads, broadcast notices, etc.).
 
- Creates the 
- 
Add 'api','rest_framework'toINSTALLED_APPS- 
        In stealthcore/stealthcore/settings.py, e.g.:INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', ## Add 'api', ## Add ]
 
- 
        
- 
python manage.py migrate- Creates initial database tables (SQLite by default).
 
- 
python manage.py createsuperuser- Lets you access Djangoโs admin panel (optional but recommended).
 
Future expansions:
/api/messages/for group chat with TTL
/api/upload/for file sharing (auto-deletion)
/api/notice/for admin broadcast messages
๐ ๏ธ Flutter Web Setup
- 
flutter create ใ ใ ใ _web- Produces a basic Flutter Web project.
 
- 
Replace UI with calculator-style layout
    - 
        Minimal example in main.dart:TextField( onChanged: (val) { // store user input }, ); ElevatedButton( onPressed: () { // call /api/check-trigger/ }, child: Text("Send"), );
- 
        Realistically, implement numeric keypad, basic arithmetic, etc. 
 
- 
        
- 
Connect POST request to /api/check-trigger/- 
        Using http:final response = await http.post( Uri.parse('/api/check-trigger/'), body: {'input': userInput}, );
- 
        If valid, backend issues a token โ Flutter loads hidden messenger UI. 
 
- 
        
- 
flutter build web- Compiles your Flutter app to build/web/.
 
- Compiles your Flutter app to 
- 
    Copy files: mkdir frontend_static/ cp -r build/web/* frontend_static/- This can be served by Nginx or Djangoโs WhiteNoise.
 
โ Phase 4 โ Trigger API & Flutter Integration
- 
    In Django api/views.py:from rest_framework.decorators import api_view from rest_framework.response import Response import os @api_view(['POST']) def check_trigger(request): ## Production: store real trigger in os.environ or DB valid_trigger = os.environ.get('ใ ใ ใ _TRIGGER', '1004') if request.data.get('input') == valid_trigger: return Response({'status': 'success', 'token': 'XYZ'}) return Response({'status': 'denied'})
- 
    Create /api/urls.pyand register routefrom django.urls import path from .views import check_trigger urlpatterns = [ path('check-trigger/', check_trigger, name='check-trigger'), ]
- 
Connect from Flutter with http.post(...)- If "success", store token in memory (Riverpod) โ show hidden UI
- If "denied", remain a simple calculator
 
- If 
- 
Ensure no sensitive logic in the frontend
    - All secret values (like the trigger code) live on the server.
 
โ Phase 5 โ Nginx & HTTPS Hosting
- 
    Create Nginx config: server { listen 80; server_name ใ ใ ใ .net; location /static/ { alias /srv/ใ ใ ใ /frontend_static/; } location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
- 
    Enable config and restart: ln -s /etc/nginx/sites-available/ใ ใ ใ /etc/nginx/sites-enabled/ nginx -t && systemctl restart nginx
- 
    Enable HTTPS: apt install certbot python3-certbot-nginx -y certbot --nginx -d ใ ใ ใ .net- Installs Letโs Encrypt cert for ใ ใ ใ .net.
- Afterward, https://ใ ใ ใ .netshould serve your disguised calculator.
 
- Installs Letโs Encrypt cert for 
Gunicorn & systemd
For production, run Django with Gunicorn behind Nginx:
gunicorn stealthcore.wsgi:application --bind 127.0.0.1:8000
Create a
/etc/systemd/system/gunicorn.serviceto auto-restart on reboot.
โ Phase 6 โ Final Testing & Disguise Hardening
- 
๐งช Test UI & trigger
    - 
Visit https://ใ ใ ใ .net
- 
Input 1004(or real trigger) โ verify{"status":"success"}+ token
- 
Invalid input โ {"status":"denied"}
 
- 
Visit 
- 
๐ Clean frontend
    - Remove all references to โchatโ or โtriggerโ
- No hardcoded secrets or tokens
- Minimal localStorage usage for ephemeral sessions
 
- 
๐ง Final disguise polish
    - Fake calculator branding (title, icon, etc.)
- Real arithmetic (optional) so itโs fully plausible as a calculator
- UI alignment, theming, and final styling
 
- 
๐ง  Create deploy.md(internal doc)- How to deploy, update, rollback, and verify
- 
Summarize environment variables (ใ ใ ใ _TRIGGER,SECRET_KEY)
- Include any security & logging best practices
 
๐ฎ Future Features
- ๐ฅ Info Board (Read-Only Announcements)
- ๐ฌ Group Chat with TTL-based message deletion
- ๐ File Sharing (auto-expire for security)
- ๐ฅ Auto-Deletion via cron/management command for expired data
- ๐ Cloudflare Proxy to mask VPS IP and mitigate DDoS
Use this roadmap to guide end-to-end development of ใ ใ ใ โfrom initial VPS setup to final production.
๐ญ ์ผ๊ธฐ
๊ฐ๋ฐ์ ๋ฉ์ถ๋ฉด ์ ๋๋ค. ์ต๊ด์ด ๋ง๊ฐ์ง๋ค. ๋ฒ์จ ์ดํ์ด ์ง๋ฌ๋ค.
ํ๋ฃจ 10๋ถ์ด๋ผ๋ ๋ฐ๋์ ๊ฐ๋ฐํ๊ณ , ์๋ฌด๋ฆฌ ์์ ๋ณํ๊ฐ ์์๋๋ผ๋ ๊ฐ๋ฐ ์ผ์ง๋ฅผ ์์ฑํ์.
๐ Git Log
| Date | Type | Message | 
|---|---|---|
| 25.04.13 Sun | docs(roadmap) | refine and finalize Phase 1โ6 plan for secure disguised messenger (HEAD โ main, origin/main) | 
| 25.04.03 Thu | docs(roadmap) | edit full Phase 0โ3 checklist for Flutter Web + Django deployment | 
| 25.04.03 Thu | docs | add dev-principles and roadmap with links from README | 
| 25.04.03 Thu | docs(README) | add more details to roadmap | 
| 25.04.03 Thu | docs(README) | change backend from Node to Django, and change from Kor to Eng | 
| 25.04.02 Wed | docs(README) | add minor details for user | 
| 25.04.01 Tue | docs(README) | add description, tech stack, features, roadmap, โฆ | 
| 25.04.01 Tue | - | Initial commit | 
 
      
๋๊ธ ๋จ๊ธฐ๊ธฐ