| | 1 | = Build Instructions = |
| | 2 | |
| | 3 | The system consists of: |
| | 4 | |
| | 5 | * '''Backend:''' Spring Boot |
| | 6 | * '''Frontend:''' React |
| | 7 | * '''Database:''' PostgreSQL |
| | 8 | |
| | 9 | == Required Software == |
| | 10 | |
| | 11 | === Operating System === |
| | 12 | * Windows 10/11 |
| | 13 | * macOS |
| | 14 | * Linux |
| | 15 | |
| | 16 | === Backend Requirements === |
| | 17 | - Java JDK 21 |
| | 18 | - Maven 3.8+ |
| | 19 | - PostgreSQL 14+ |
| | 20 | |
| | 21 | === Frontend Requirements === |
| | 22 | - Node.js 22+ |
| | 23 | - npm 10+ |
| | 24 | |
| | 25 | == Development Environment Description == |
| | 26 | |
| | 27 | === Backend Stack === |
| | 28 | * Spring Boot |
| | 29 | * Spring Web |
| | 30 | * Spring Data JPA |
| | 31 | * Spring Security |
| | 32 | * Hibernate |
| | 33 | * PostgreSQL Driver |
| | 34 | |
| | 35 | === Frontend Stack === |
| | 36 | * React 18+ |
| | 37 | * React Router |
| | 38 | * Axios |
| | 39 | * TailwindCSS |
| | 40 | |
| | 41 | == Build Instructions == |
| | 42 | |
| | 43 | === Clone the project === |
| | 44 | |
| | 45 | git clone https://github.com/marijakarapandzova/Medora.git |
| | 46 | |
| | 47 | === Create database === |
| | 48 | {{{ |
| | 49 | CREATE DATABASE medora; |
| | 50 | }}} |
| | 51 | |
| | 52 | **Note:** The database itself must be created manually. Schema and tables are created automatically by Flyway migrations and Hibernate when the backend starts. |
| | 53 | |
| | 54 | === Build and run the backend === |
| | 55 | {{{ |
| | 56 | mvn clean install |
| | 57 | mvn spring-boot:run |
| | 58 | }}} |
| | 59 | Runs on `http://localhost:8080` |
| | 60 | |
| | 61 | **What happens automatically:** |
| | 62 | - Flyway applies versioned migrations from `src/main/resources/db/migration/` |
| | 63 | - Hibernate creates/updates tables with `ddl-auto=update` |
| | 64 | |
| | 65 | === Build and run the frontend === |
| | 66 | {{{ |
| | 67 | cd frontend |
| | 68 | npm install |
| | 69 | npm start |
| | 70 | }}} |
| | 71 | Runs on `http://localhost:3000` |