| 1 | # EduBerza
|
|---|
| 2 |
|
|---|
| 3 | ## Short description
|
|---|
| 4 |
|
|---|
| 5 | *P0 — write 150–200 words here in your own words. AI-generated text is not
|
|---|
| 6 | allowed in this phase.*
|
|---|
| 7 |
|
|---|
| 8 | *Your own Macedonian draft is in [`opis.md`](P0-ProjectDefinition/opis.md); the material to cover is
|
|---|
| 9 | what data the database holds (users, crypto assets, markets, orders, holdings,
|
|---|
| 10 | transactions, market trades, candles, watchlists), who it is for (beginner
|
|---|
| 11 | traders), and what kind of project it is.*
|
|---|
| 12 |
|
|---|
| 13 | ## Team members
|
|---|
| 14 |
|
|---|
| 15 | - Stefan Trsunov 231285
|
|---|
| 16 |
|
|---|
| 17 | ## Course
|
|---|
| 18 |
|
|---|
| 19 | Databases in 2025/2026/Winter
|
|---|
| 20 |
|
|---|
| 21 | ## Under the supervision of
|
|---|
| 22 |
|
|---|
| 23 | Prof. Dr. Vangel V. Ajanovski
|
|---|
| 24 |
|
|---|
| 25 | ## How this folder maps to the wiki
|
|---|
| 26 |
|
|---|
| 27 | The files here are grouped into one folder per phase for convenience. **The wiki
|
|---|
| 28 | is flat** — when you publish, each file becomes a page named exactly after the
|
|---|
| 29 | file, with no folder prefix and with capitalisation preserved: `About`,
|
|---|
| 30 | `ERModel`, `RelationalDesign`, `UseCaseModel`, `UseCase0001`, …,
|
|---|
| 31 | `PrototypeImplementation`, `BuildInstructions`, and the four `*AIUsage` pages.
|
|---|
| 32 | Attachments (`ERModel_v05.xml`, `ERModel_v05.png`, `schema_creation.sql`,
|
|---|
| 33 | `data_load.sql`, `relational_diagram_v4.png`, the screenshots) attach to the page
|
|---|
| 34 | that documents them.
|
|---|
| 35 |
|
|---|
| 36 | | Folder | Phase | Wiki pages produced |
|
|---|
| 37 | |--------|-------|---------------------|
|
|---|
| 38 | | `P0-ProjectDefinition/` | P0 | `About` (+ this front page) |
|
|---|
| 39 | | `P1-ConceptualModel/` | P1 | `ERModel`, `ERModelAIUsage` |
|
|---|
| 40 | | `P2-RelationalDesign/` | P2 | `RelationalDesign`, `RelationalDesignAIUsage` |
|
|---|
| 41 | | `P3-UseCaseModel/` | P3 | `UseCaseModel`, `UseCase0001`–`UseCase0007`, `UseCaseModelAIUsage` |
|
|---|
| 42 | | `P4-Prototype/` | P4 | `PrototypeImplementation`, `UseCase000XImplementation`, `BuildInstructions`, `PrototypeImplementationAIUsage` |
|
|---|
| 43 | | `P5-Normalization/` | P5 | `Normalization`, `NormalizationAIUsage` |
|
|---|
| 44 | | `P6-AdvancedReports/` | P6 | `AdvancedReports`, `AdvancedReportsAIUsage` |
|
|---|
| 45 | | `P7-AdvancedDatabaseDevelopment/` | P7 | `AdvancedDatabaseDevelopment`, `AdvancedDatabaseDevelopmentAIUsage` |
|
|---|
| 46 |
|
|---|
| 47 | `Instructions.md` is the condensed course rubric — reference material, not a
|
|---|
| 48 | submission. `P0-ProjectDefinition/opis.md` and `P1-ConceptualModel/ep-diagram.md`
|
|---|
| 49 | are your own working notes, kept because they are the evidence that the initial
|
|---|
| 50 | model was yours before any AI was used.
|
|---|
| 51 |
|
|---|
| 52 | The two SQL scripts deliberately stay in `server/db/` rather than moving into
|
|---|
| 53 | `P2-RelationalDesign/`: they are compiled into the prototype binary with
|
|---|
| 54 | `go:embed`, which requires them to sit inside the Go package. Attach them to the
|
|---|
| 55 | `RelationalDesign` page from there.
|
|---|
| 56 |
|
|---|
| 57 | ## Content
|
|---|
| 58 |
|
|---|
| 59 | | Phase | Link | Status |
|
|---|
| 60 | |-------|------|--------|
|
|---|
| 61 | | P0 | [About](P0-ProjectDefinition/About.md) | Draft — needs your own text |
|
|---|
| 62 | | P1 | [ERModel](P1-ConceptualModel/ERModel.md) | Finished, awaiting approval |
|
|---|
| 63 | | P2 | [RelationalDesign](P2-RelationalDesign/RelationalDesign.md) | Finished, awaiting approval |
|
|---|
| 64 | | P3 | [UseCaseModel](P3-UseCaseModel/UseCaseModel.md) | Finished, awaiting approval |
|
|---|
| 65 | | P4 | [PrototypeImplementation](P4-Prototype/PrototypeImplementation.md) | Finished, awaiting approval |
|
|---|
| 66 | | P5 | [Normalization](P5-Normalization/Normalization.md) | Finished, awaiting approval |
|
|---|
| 67 | | P6 | [AdvancedReports](P6-AdvancedReports/AdvancedReports.md) | Finished, awaiting approval |
|
|---|
| 68 | | P7 | [AdvancedDatabaseDevelopment](P7-AdvancedDatabaseDevelopment/AdvancedDatabaseDevelopment.md) | Finished, awaiting approval |
|
|---|
| 69 | | P8 | *Advanced Application Development* | Not started |
|
|---|
| 70 | | P9 | *Other topics (Performance, Security)* | Not started |
|
|---|
| 71 |
|
|---|
| 72 | Keep the Status column current yourself — *started → completed → revised →
|
|---|
| 73 | approved → final* — after each consultation.
|
|---|
| 74 |
|
|---|
| 75 | Note: P0–P4 alone are not enough for a passing grade; at least some of P5–P9 are
|
|---|
| 76 | required. P5 is the recommended next one.
|
|---|
| 77 |
|
|---|
| 78 | ## Phase attachments
|
|---|
| 79 |
|
|---|
| 80 | | File | Phase | What |
|
|---|
| 81 | |------|-------|------|
|
|---|
| 82 | | [`ERModel_v05.xml`](P1-ConceptualModel/ERModel_v05.xml) | P1 | TerraER source, current version |
|
|---|
| 83 | | [`ERModel_v05.png`](P1-ConceptualModel/ERModel_v05.png) | P1 | Exported diagram image, current version |
|
|---|
| 84 | | [`ERModel_v04.xml`](P1-ConceptualModel/ERModel_v04.xml), [`ERModel_v03.xml`](P1-ConceptualModel/ERModel_v03.xml) | P1 | TerraER source, previous versions (kept per P1 rules) |
|
|---|
| 85 | | [`ERModel_v04.png`](P1-ConceptualModel/ERModel_v04.png), [`ERModel_v03.png`](P1-ConceptualModel/ERModel_v03.png) | P1 | Exported diagram images, previous versions |
|
|---|
| 86 | | [`ERModel_v02.xml`](P1-ConceptualModel/ERModel_v02.xml) | P1 | TerraER source, previous version (kept per P1 rules) |
|
|---|
| 87 | | [`ERModel_v02.png`](P1-ConceptualModel/ERModel_v02.png) | P1 | Exported diagram image, previous version |
|
|---|
| 88 | | [`ERModel_v01.xml`](P1-ConceptualModel/ERModel_v01.xml) | P1 | TerraER source, first version (kept per P1 rules) |
|
|---|
| 89 | | [`ERModel_v01.png`](P1-ConceptualModel/ERModel_v01.png) | P1 | Exported diagram image, first version |
|
|---|
| 90 | | [`../server/db/schema_creation.sql`](../server/db/schema_creation.sql) | P2 | DDL — drops and recreates the `project` schema |
|
|---|
| 91 | | [`../server/db/data_load.sql`](../server/db/data_load.sql) | P2 | DML — truncates and reloads sample data |
|
|---|
| 92 | | [`relational_diagram_v4.png`](P2-RelationalDesign/relational_diagram_v4.png) | P2 | Relational diagram exported from DBeaver, laid out like `ERModel_v05.png` |
|
|---|
| 93 | | [`../server/db/reports_demo_data.sql`](../server/db/reports_demo_data.sql) | P6 | Optional multi-quarter demo data for the two reports (not part of `-init`) |
|
|---|
| 94 | | [`../server/db/advanced_db.sql`](../server/db/advanced_db.sql) | P7 | Triggers, functions, views and the background job (part of `-init`) |
|
|---|
| 95 | | [`../server/db/advanced_db_tests.sql`](../server/db/advanced_db_tests.sql) | P7 | Tests for every P7 rule, rolled back at the end |
|
|---|
| 96 |
|
|---|
| 97 | ## Use cases (P3)
|
|---|
| 98 |
|
|---|
| 99 | [UC0001](P3-UseCaseModel/UseCase0001.md) Register ·
|
|---|
| 100 | [UC0002](P3-UseCaseModel/UseCase0002.md) Log in ·
|
|---|
| 101 | [UC0003](P3-UseCaseModel/UseCase0003.md) Deposit ·
|
|---|
| 102 | [UC0004](P3-UseCaseModel/UseCase0004.md) Buy ·
|
|---|
| 103 | [UC0005](P3-UseCaseModel/UseCase0005.md) Sell ·
|
|---|
| 104 | [UC0006](P3-UseCaseModel/UseCase0006.md) Portfolio ·
|
|---|
| 105 | [UC0007](P3-UseCaseModel/UseCase0007.md) Watchlist
|
|---|
| 106 |
|
|---|
| 107 | ## AI usage logs
|
|---|
| 108 |
|
|---|
| 109 | Required by the phase rules for every phase where AI was used. P0 does not have
|
|---|
| 110 | one because AI use is forbidden there.
|
|---|
| 111 |
|
|---|
| 112 | - [ERModelAIUsage](P1-ConceptualModel/ERModelAIUsage.md) (P1)
|
|---|
| 113 | - [RelationalDesignAIUsage](P2-RelationalDesign/RelationalDesignAIUsage.md) (P2)
|
|---|
| 114 | - [UseCaseModelAIUsage](P3-UseCaseModel/UseCaseModelAIUsage.md) (P3)
|
|---|
| 115 | - [PrototypeImplementationAIUsage](P4-Prototype/PrototypeImplementationAIUsage.md) (P4)
|
|---|
| 116 | - [NormalizationAIUsage](P5-Normalization/NormalizationAIUsage.md) (P5)
|
|---|
| 117 | - [AdvancedReportsAIUsage](P6-AdvancedReports/AdvancedReportsAIUsage.md) (P6)
|
|---|
| 118 | - [AdvancedDatabaseDevelopmentAIUsage](P7-AdvancedDatabaseDevelopment/AdvancedDatabaseDevelopmentAIUsage.md) (P7)
|
|---|
| 119 |
|
|---|
| 120 | ## Build & run
|
|---|
| 121 |
|
|---|
| 122 | See [BuildInstructions](P4-Prototype/BuildInstructions.md), or [`../README.md`](../README.md)
|
|---|
| 123 | for the four-command quick start.
|
|---|
| 124 | # bp
|
|---|