summaryrefslogtreecommitdiff
path: root/archived/projt-launcher/docs/contributing/PROJECT_STRUCTURE.md
diff options
context:
space:
mode:
authorMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-02 18:51:45 +0300
committerMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-02 18:51:45 +0300
commitd3261e64152397db2dca4d691a990c6bc2a6f4dd (patch)
treefac2f7be638651181a72453d714f0f96675c2b8b /archived/projt-launcher/docs/contributing/PROJECT_STRUCTURE.md
parent31b9a8949ed0a288143e23bf739f2eb64fdc63be (diff)
downloadProject-Tick-d3261e64152397db2dca4d691a990c6bc2a6f4dd.tar.gz
Project-Tick-d3261e64152397db2dca4d691a990c6bc2a6f4dd.zip
NOISSUE add archived projects
Signed-off-by: Mehmet Samet Duman <yongdohyun@projecttick.org>
Diffstat (limited to 'archived/projt-launcher/docs/contributing/PROJECT_STRUCTURE.md')
-rw-r--r--archived/projt-launcher/docs/contributing/PROJECT_STRUCTURE.md123
1 files changed, 123 insertions, 0 deletions
diff --git a/archived/projt-launcher/docs/contributing/PROJECT_STRUCTURE.md b/archived/projt-launcher/docs/contributing/PROJECT_STRUCTURE.md
new file mode 100644
index 0000000000..17cef52415
--- /dev/null
+++ b/archived/projt-launcher/docs/contributing/PROJECT_STRUCTURE.md
@@ -0,0 +1,123 @@
+# Project Structure
+
+Directory layout and file placement guide.
+
+---
+
+## Directory Layout
+
+```
+ProjT-Launcher/
+├── launcher/ # Main application
+│ ├── ui/ # Qt Widgets
+│ │ ├── pages/ # Main screens
+│ │ ├── widgets/ # Reusable components
+│ │ ├── dialogs/ # Modal windows
+│ │ └── setupwizard/ # First-run wizard
+│ ├── minecraft/ # Game logic
+│ │ ├── auth/ # Account authentication
+│ │ ├── launch/ # Game process
+│ │ ├── mod/ # Mod loading
+│ │ └── versions/ # Version parsing
+│ ├── net/ # Networking
+│ ├── tasks/ # Background jobs
+│ ├── java/ # Java runtime
+│ ├── modplatform/ # Mod platform APIs
+│ ├── resources/ # Images, themes
+│ ├── icons/ # App icons
+│ └── translations/ # Language files
+├── tests/ # Unit tests
+├── cmake/ # Build configuration
+└── docs/ # Documentation
+```
+
+---
+
+## File Placement
+
+### C++ Files
+
+| Location | Purpose |
+|----------|---------|
+| `launcher/ui/` | Qt Widgets UI |
+| `launcher/minecraft/` | Game logic |
+| `launcher/net/` | HTTP, downloads |
+| `launcher/tasks/` | Async operations |
+| `launcher/modplatform/` | Modrinth, CurseForge |
+
+**Note**: `minecraft/` is for Minecraft-specific logic only (versions, mods, launch process). Generic launcher functionality belongs in `launcher/` or appropriate submodules.
+
+### UI Files
+
+| Location | Purpose |
+|----------|---------|
+| `launcher/ui/widgets/` | Reusable widgets |
+| `launcher/ui/pages/` | Main screens |
+| `launcher/ui/dialogs/` | Popups, modals |
+| `launcher/ui/setupwizard/` | First-run flow |
+
+### Assets
+
+| Location | Format |
+|----------|--------|
+| `launcher/resources/` | PNG, SVG |
+| `launcher/icons/` | ICO, PNG, SVG |
+| `launcher/translations/` | .ts |
+
+---
+
+## Quick Reference
+
+| I want to add... | Location |
+|------------------|----------|
+| New screen | `launcher/ui/pages/` |
+| Reusable widget | `launcher/ui/widgets/` |
+| Modal dialog | `launcher/ui/dialogs/` |
+| Network API | `launcher/net/` |
+| Background job | `launcher/tasks/` |
+| Game logic | `launcher/minecraft/` |
+| Unit test | `tests/` |
+
+---
+
+## Naming
+
+| Type | Convention | Example |
+|------|------------|---------|
+| C++ class | PascalCase | `InstanceList.cpp` |
+| UI file | PascalCase | `SettingsPage.ui` |
+| Asset | kebab-case | `app-icon.png` |
+| Test | PascalCase_test | `FileSystem_test.cpp` |
+
+---
+
+## Rules
+
+- No circular dependencies between modules
+- `ui/` → `core` → `data` layering (conceptual layers, not directory names)
+- Tests mirror source structure
+- Do not create new top-level directories without maintainer approval
+
+---
+
+## Third-Party Libraries
+
+Location: Root directory (e.g., `zlib/`, `quazip/`)
+
+All third-party code is maintained as detached forks. See [third-party.md](../handbook/third-party.md) for the complete list, upstream references, and patch policies.
+
+---
+
+## Test Scope
+
+- `tests/` contains unit tests primarily
+- Integration tests go in `tests/` but must be clearly named
+- UI tests are discouraged; prefer testing core logic
+- See [TESTING.md](./TESTING.md) for test standards
+
+---
+
+## Related
+
+- [Architecture](./ARCHITECTURE.md)
+- [Testing](./TESTING.md)