- Timestamp:
- 08/07/26 02:59:51 (8 weeks ago)
- Branches:
- main
- Children:
- fe28254
- Parents:
- d8ce4e2
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
README.md
rd8ce4e2 rb715712 1 # EduBerza 1 # EduBerza — quick start 2 2 3 ## Short description 3 Educational crypto-exchange simulator. Go CLI + PostgreSQL. Course project for 4 *Databases 2025/2026 Winter*, FINKI UKIM. 4 5 5 *P0 — write 150–200 words here in your own words. AI-generated text is not 6 allowed in this phase.* 6 Full documentation lives in [`docs/`](docs/) — start at [`docs/README.md`](docs/README.md), 7 which is the project front page and links every phase. Detailed build and test 8 instructions are in [`docs/P4-Prototype/BuildInstructions.md`](docs/P4-Prototype/BuildInstructions.md). 7 9 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.* 10 ## Run it in four commands 12 11 13 ## Team members 12 ```sh 13 cp .env.example .env # local defaults: postgres on port 5433 14 docker compose up -d # start PostgreSQL 15 go build -o eduberza ./server 16 ./eduberza -init # create the `project` schema + load sample data 17 ./eduberza # start the CLI 18 ``` 14 19 15 - *Your First Name Last Name — Index XXXXXX* 20 Log in as `alice` / `test123` (also `bob`, `charlie` — same password). 16 21 17 ## Course 22 `./eduberza -init` is destructive and idempotent: it drops and recreates the 23 `project` schema every time, so it is the reset button whenever a demo goes 24 sideways. `./eduberza -load-data` reloads only the sample data. 18 25 19 Databases in 2025/2026/Winter 26 Optional — watch prices move while you trade, in a second terminal: 20 27 21 ## Under the supervision of 28 ```sh 29 go run ./bots 30 ``` 22 31 23 Prof. Dr. Vangel V. Ajanovski 32 ## Layout 24 33 25 ## How this folder maps to the wiki 34 | Path | What | 35 |------|------| 36 | `server/` | CLI prototype — one file per use-case area | 37 | `server/db/schema_creation.sql` | DDL: drops + recreates the `project` schema (P2) | 38 | `server/db/data_load.sql` | DML: truncates + reloads sample data (P2) | 39 | `bots/` | Market simulation bot — random-walk trades and 1m candles | 40 | `docs/` | All phase documentation, ER diagram, use cases | 26 41 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_v01.xml`, `ERModel_v01.png`, `schema_creation.sql`, 33 `data_load.sql`, `relational_schema.jpg`, the screenshots) attach to the page 34 that documents them. 42 Both SQL scripts are embedded into the binary at build time, so `-init` works 43 from any working directory. 35 44 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` | 45 ## Requirements 43 46 44 `Instructions.md` is the condensed course rubric — reference material, not a 45 submission. `P0-ProjectDefinition/opis.md` and `P1-ConceptualModel/ep-diagram.md` 46 are your own working notes, kept because they are the evidence that the initial 47 model was yours before any AI was used. 48 49 The two SQL scripts deliberately stay in `server/db/` rather than moving into 50 `P2-RelationalDesign/`: they are compiled into the prototype binary with 51 `go:embed`, which requires them to sit inside the Go package. Attach them to the 52 `RelationalDesign` page from there. 53 54 ## Content 55 56 | Phase | Link | Status | 57 |-------|------|--------| 58 | P0 | [About](P0-ProjectDefinition/About.md) | Draft — needs your own text | 59 | P1 | [ERModel](P1-ConceptualModel/ERModel.md) | Finished, awaiting approval | 60 | P2 | [RelationalDesign](P2-RelationalDesign/RelationalDesign.md) | Finished, awaiting approval | 61 | P3 | [UseCaseModel](P3-UseCaseModel/UseCaseModel.md) | Finished, awaiting approval | 62 | P4 | [PrototypeImplementation](P4-Prototype/PrototypeImplementation.md) | Finished, awaiting approval | 63 | P5 | *Normalization* | Not started | 64 | P6 | *Complex DB Reports* | Not started | 65 | P7 | *Advanced Database Development* | Not started | 66 | P8 | *Advanced Application Development* | Not started | 67 | P9 | *Other topics (Performance, Security)* | Not started | 68 69 Keep the Status column current yourself — *started → completed → revised → 70 approved → final* — after each consultation. 71 72 Note: P0–P4 alone are not enough for a passing grade; at least some of P5–P9 are 73 required. P5 is the recommended next one. 74 75 ## Phase attachments 76 77 | File | Phase | What | 78 |------|-------|------| 79 | [`ERModel_v01.xml`](P1-ConceptualModel/ERModel_v01.xml) | P1 | TerraER source of the ER diagram | 80 | [`ERModel_v01.png`](P1-ConceptualModel/ERModel_v01.png) | P1 | Exported diagram image | 81 | [`../server/db/schema_creation.sql`](../server/db/schema_creation.sql) | P2 | DDL — drops and recreates the `project` schema | 82 | [`../server/db/data_load.sql`](../server/db/data_load.sql) | P2 | DML — truncates and reloads sample data | 83 | [`relational_schema.jpg`](P2-RelationalDesign/relational_schema.jpg) | P2 | Crow's-foot diagram exported from DBeaver | 84 85 ## Use cases (P3) 86 87 [UC0001](P3-UseCaseModel/UseCase0001.md) Register · 88 [UC0002](P3-UseCaseModel/UseCase0002.md) Log in · 89 [UC0003](P3-UseCaseModel/UseCase0003.md) Deposit · 90 [UC0004](P3-UseCaseModel/UseCase0004.md) Buy · 91 [UC0005](P3-UseCaseModel/UseCase0005.md) Sell · 92 [UC0006](P3-UseCaseModel/UseCase0006.md) Portfolio · 93 [UC0007](P3-UseCaseModel/UseCase0007.md) Watchlist 94 95 ## AI usage logs 96 97 Required by the phase rules for every phase where AI was used. P0 does not have 98 one because AI use is forbidden there. 99 100 - [ERModelAIUsage](P1-ConceptualModel/ERModelAIUsage.md) (P1) 101 - [RelationalDesignAIUsage](P2-RelationalDesign/RelationalDesignAIUsage.md) (P2) 102 - [UseCaseModelAIUsage](P3-UseCaseModel/UseCaseModelAIUsage.md) (P3) 103 - [PrototypeImplementationAIUsage](P4-Prototype/PrototypeImplementationAIUsage.md) (P4) 104 105 ## Build & run 106 107 See [BuildInstructions](P4-Prototype/BuildInstructions.md), or [`../README.md`](../README.md) 108 for the four-command quick start. 109 # bp 47 Go 1.25+, Docker (or any reachable PostgreSQL 14+), and optionally `psql`. 48 Editing the ER diagram additionally needs Java and TerraER — see 49 [`docs/P4-Prototype/BuildInstructions.md`](docs/P4-Prototype/BuildInstructions.md).
Note:
See TracChangeset
for help on using the changeset viewer.
