Changeset b715712


Ignore:
Timestamp:
08/07/26 02:59:51 (8 weeks ago)
Author:
Stefan <trsunovstefan@…>
Branches:
main
Children:
fe28254
Parents:
d8ce4e2
Message:

Add the server side and configuration

Files:
18 added
1 edited
37 moved

Legend:

Unmodified
Added
Removed
  • README.md

    rd8ce4e2 rb715712  
    1 # EduBerza
     1# EduBerza — quick start
    22
    3 ## Short description
     3Educational crypto-exchange simulator. Go CLI + PostgreSQL. Course project for
     4*Databases 2025/2026 Winter*, FINKI UKIM.
    45
    5 *P0 — write 150–200 words here in your own words. AI-generated text is not
    6 allowed in this phase.*
     6Full documentation lives in [`docs/`](docs/) — start at [`docs/README.md`](docs/README.md),
     7which is the project front page and links every phase. Detailed build and test
     8instructions are in [`docs/P4-Prototype/BuildInstructions.md`](docs/P4-Prototype/BuildInstructions.md).
    79
    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
    1211
    13 ## Team members
     12```sh
     13cp .env.example .env          # local defaults: postgres on port 5433
     14docker compose up -d          # start PostgreSQL
     15go build -o eduberza ./server
     16./eduberza -init              # create the `project` schema + load sample data
     17./eduberza                    # start the CLI
     18```
    1419
    15 - *Your First Name Last Name — Index XXXXXX*
     20Log in as `alice` / `test123` (also `bob`, `charlie` — same password).
    1621
    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
     24sideways. `./eduberza -load-data` reloads only the sample data.
    1825
    19 Databases in 2025/2026/Winter
     26Optional — watch prices move while you trade, in a second terminal:
    2027
    21 ## Under the supervision of
     28```sh
     29go run ./bots
     30```
    2231
    23 Prof. Dr. Vangel V. Ajanovski
     32## Layout
    2433
    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 |
    2641
    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.
     42Both SQL scripts are embedded into the binary at build time, so `-init` works
     43from any working directory.
    3544
    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
    4346
    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
     47Go 1.25+, Docker (or any reachable PostgreSQL 14+), and optionally `psql`.
     48Editing 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.