|
1 | 1 | # Project Symmetry — Documentation |
2 | 2 |
|
3 | | -Cross-language Wikipedia article gap analysis tool. |
| 3 | +> The main README at the project root contains the full documentation (setup, architecture, API reference, CI/CD, contributing). |
| 4 | +> See [../README.md](../README.md). |
4 | 5 |
|
5 | 6 | --- |
6 | 7 |
|
7 | | -## Documents |
| 8 | +## Additional Documents |
8 | 9 |
|
9 | 10 | | File | Description | |
10 | 11 | |------|-------------| |
11 | | -| [backend/README.md](./backend/README.md) | Backend API reference, architecture, configuration | |
12 | | -| [frontend/README.md](./frontend/README.md) | Frontend architecture, project structure, development | |
13 | 12 | | [similarity-threshold-algorithm.md](./similarity-threshold-algorithm.md) | Complete similarity scoring algorithm documentation (prototype + production) | |
14 | 13 | | [agent-instructions.md](./agent-instructions.md) | LLM/agent development instructions, conventions, pitfalls | |
15 | | - |
16 | | ---- |
17 | | - |
18 | | -## Overview |
19 | | - |
20 | | -**A semantic analysis tool that compares Wikipedia articles across languages section-by-section and paragraph-by-paragraph to identify content gaps, missing information, and added content.** |
21 | | - |
22 | | -Repository: [grey-box/symmetry-project](https://github.com/grey-box/symmetry-project) |
23 | | - |
24 | | -   |
25 | | - |
26 | | ---- |
27 | | - |
28 | | -## Tech Stack |
29 | | - |
30 | | -| Layer | Technologies | |
31 | | -|-------|-------------| |
32 | | -| Frontend | Electron 26 + React 18 + TypeScript + Vite + Tailwind CSS + shadcn/ui | |
33 | | -| Backend | Python + FastAPI + sentence-transformers + spaCy + MarianMT | |
34 | | -| Comparison Engine | LaBSE sentence embeddings (cosine similarity) + Levenshtein distance | |
35 | | - |
36 | | ---- |
37 | | - |
38 | | -## Prerequisites |
39 | | - |
40 | | -- Node.js v18+ |
41 | | -- Python 3.8–3.11 |
42 | | -- yarn / npm |
43 | | -- Docker (optional, for containerized deployment) |
44 | | - |
45 | | ---- |
46 | | - |
47 | | -## Quick Start |
48 | | - |
49 | | -### Unified Script (Recommended) |
50 | | - |
51 | | -```bash |
52 | | -# Start both backend and frontend |
53 | | -./start.sh all |
54 | | - |
55 | | -# Start with frontend in development mode |
56 | | -./start.sh all --dev |
57 | | -``` |
58 | | - |
59 | | -### Docker Compose |
60 | | - |
61 | | -```bash |
62 | | -./start.sh docker # Foreground |
63 | | -./start.sh docker-up # Detached |
64 | | -./start.sh docker-down # Stop |
65 | | -``` |
66 | | - |
67 | | -### Manual — Backend |
68 | | - |
69 | | -```bash |
70 | | -cd symmetry-unified-backend |
71 | | -python3 -m venv venv |
72 | | -source venv/bin/activate |
73 | | -pip install -r requirements.txt |
74 | | -uvicorn app.main:app --reload --host 127.0.0.1 --port 8000 |
75 | | -``` |
76 | | - |
77 | | -### Manual — Frontend |
78 | | - |
79 | | -```bash |
80 | | -cd desktop-electron-frontend |
81 | | -yarn install |
82 | | -yarn start |
83 | | -``` |
84 | | - |
85 | | ---- |
86 | | - |
87 | | -## Access Points |
88 | | - |
89 | | -- **Frontend**: <http://localhost:5173> |
90 | | -- **Backend API**: <http://localhost:8000> |
91 | | -- **API Documentation (Swagger)**: <http://localhost:8000/docs> |
92 | | - |
93 | | ---- |
94 | | - |
95 | | -## Docker Images |
96 | | - |
97 | | -Released images are available from GHCR: |
98 | | - |
99 | | -```bash |
100 | | -# Pull specific version |
101 | | -docker pull ghcr.io/grey-box/symmetry-project/backend:1.1.0 |
102 | | -docker pull ghcr.io/grey-box/symmetry-project/frontend:1.1.0 |
103 | | - |
104 | | -# Pull latest |
105 | | -docker pull ghcr.io/grey-box/symmetry-project/backend:latest |
106 | | -docker pull ghcr.io/grey-box/symmetry-project/frontend:latest |
107 | | -``` |
108 | | - |
109 | | ---- |
110 | | - |
111 | | -## API Endpoints Summary |
112 | | - |
113 | | -### Section Comparison (Primary) |
114 | | - |
115 | | -- `POST /symmetry/v1/articles/compare-sections` — Compare two Wikipedia articles section-by-section with paragraph-level diffs |
116 | | - |
117 | | -### Structured Wiki |
118 | | - |
119 | | -- `GET /symmetry/v1/wiki/structured-article` — Parse article into sections/citations/references |
120 | | - |
121 | | -### Legacy Comparison |
122 | | - |
123 | | -- `POST /symmetry/v1/articles/compare` — Plain-text semantic comparison |
124 | | - |
125 | | -### Models Management |
126 | | - |
127 | | -- `GET /models/comparison` — List comparison models |
128 | | - |
129 | | -See [backend/README.md](./backend/README.md) for the full API reference. |
130 | | - |
131 | | ---- |
132 | | - |
133 | | -## Testing |
134 | | - |
135 | | -```bash |
136 | | -cd symmetry-unified-backend |
137 | | -source venv/bin/activate |
138 | | -python -m pytest # Run all tests |
139 | | -python -m pytest -v # Verbose |
140 | | -python -m pytest --cov=app # With coverage |
141 | | -``` |
142 | | - |
143 | | ---- |
144 | | - |
145 | | -## CI/CD |
146 | | - |
147 | | -GitHub Actions workflows: |
148 | | - |
149 | | -| Workflow | Trigger | What it does | |
150 | | -|----------|---------|-------------| |
151 | | -| **CI** (`.github/workflows/ci.yml`) | Push/PR to `main` or `develop` | Runs backend tests, builds frontend web bundle, builds & smoke-tests frontend Docker image, runs docker-compose integration | |
152 | | -| **Release** (`.github/workflows/release.yml`) | Push to `main` | Runs full CI → bumps version (semver) → creates git tag → creates GitHub release → publishes Docker images to GHCR | |
153 | | - |
154 | | ---- |
155 | | - |
156 | | -## Contributing |
157 | | - |
158 | | -1. Fork the repository |
159 | | -2. Create a feature branch (`git checkout -b feature/your-feature`) |
160 | | -3. Install dependencies (see Quick Start above) |
161 | | -4. Make changes and run tests |
162 | | -5. Use [Conventional Commits](https://www.conventionalcommits.org/) for commit messages |
163 | | -6. Submit a pull request to `develop` |
164 | | -7. After review, PRs are merged to `develop`, then promoted to `main` for release |
165 | | - |
166 | | ---- |
167 | | - |
168 | | -## Community |
169 | | - |
170 | | -- **Project Website**: <https://www.grey-box.ca/project-symmetry/> |
171 | | -- **GitHub Issues**: <https://github.com/grey-box/Project-Symmetry-AI/issues> |
172 | | -- **Design Resources (Figma)**: <https://www.figma.com/design/yN89gDcV3rdbje70X9RJGL/Project-Symmetry> |
173 | | - |
174 | | ---- |
175 | | - |
176 | | -**Last Updated**: April 2026 | **Version**: 2.0.0 | **Maintainers**: [grey-box](https://github.com/grey-box) |
0 commit comments