https://github.com/panoskoutris/xplore-software-design
Interactive storytelling application designed using a design-first approach with UML diagrams and a fully documented OpenAPI 3.0.4 RESTful API.
https://github.com/panoskoutris/xplore-software-design
api-design class-diagram educational-app gherkin json json-schema mockups open-api requirements-engineering rest-api restful-api sequence-diagram software-architecture-and-design software-engineering storytelling swagger uml-diagrams use-case-diagram web-application
Last synced: about 1 month ago
JSON representation
Interactive storytelling application designed using a design-first approach with UML diagrams and a fully documented OpenAPI 3.0.4 RESTful API.
- Host: GitHub
- URL: https://github.com/panoskoutris/xplore-software-design
- Owner: panoskoutris
- Created: 2025-07-17T13:03:03.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-08-17T08:56:41.000Z (about 2 months ago)
- Last Synced: 2025-08-17T10:21:25.465Z (about 2 months ago)
- Topics: api-design, class-diagram, educational-app, gherkin, json, json-schema, mockups, open-api, requirements-engineering, rest-api, restful-api, sequence-diagram, software-architecture-and-design, software-engineering, storytelling, swagger, uml-diagrams, use-case-diagram, web-application
- Language: Gherkin
- Homepage:
- Size: 6.36 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Xplore Web Application - Software Design
![]()
## Overview
**Xplore** is an educational storytelling web application developed as part of the course **Software Engineering I** at the Aristotle University of Thessaloniki (AUTH), School of Electrical & Computer Engineering. . Inspired by the graphic novel *"Ποιός σκότωσε τον κ. Χ;"*, the platform allows interactive learning through stories, riddles, and character-driven progress.
The project follows a **Design-First API** approach and adheres to the **OpenAPI 3.0.4 specification**.
---
## Functional Features
- **Gamemaster**: Can browse stories and panels, invite solvers, and add riddles.
- **Solver**: Accepts invitations and solves riddles.
- **Story Flow**: Users proceed through stories using narrative panels.
- **Custom Riddles**: Gamemasters can create or fetch riddles from the database.---
## Project Deliverables
The development of the project followed a structured process organized in **three main deliverables**:
### Deliverable 1
- Collection of **User Requirements**
- Definition of **User Stories**
- Design of **Use Case Diagrams**
- Creation of **Activity Diagrams** for key functionalities### Deliverable 2
- Design of the **Class Diagrams**
- Implementation of **Sequence Diagrams** to model system interactions### Deliverable 3
- Definition and implementation of the **RESTful API**
- Documentation of the API using **OpenAPI (Swagger)**
- Organized project structure based on a **Design-First** approach
---## Repository Structure
```
xplore-software-design/
├── diagrams/ # All UML and structural diagrams
│ ├── activity-diagrams/
│ │ ├── attempt-riddle.png
│ │ ├── choose-riddle.png
│ │ └── enter-storyline.png
│ │
│ ├── class-diagrams/
│ │ ├── account-package.png
│ │ ├── answer-package.png
│ │ ├── full-class-diagram.png
│ │ ├── full-collapsed-class-diagram.png
│ │ ├── hint-package.png
│ │ ├── invitation-package.png
│ │ ├── riddle-package.png
│ │ ├── solver-account-package.png
│ │ └── story-package.png
│ │
│ ├── design-patterns/
│ │ ├── bridge.png
│ │ └── proxy.png
│ │
│ ├── sequence-diagrams/
│ │ ├── attempt-riddle.png
│ │ ├── choose-riddle.png
│ │ └── enter-storyline.png
│ │
│ └── use-case-diagrams/
│ └── use-case-diagram.png
│
├── mockups/ # UI mockups for key user actions
│ ├── accept-invitation.png
│ ├── answer-riddle-incorrectly.png
│ ├── answer-riddle.png
│ ├── app-logo.png
│ ├── choose-database-riddle-1.png
│ ├── choose-database-riddle-2.png
│ ├── choose-role.png
│ ├── choose-story.png
│ ├── congrats.png
│ ├── create-riddles.png
│ ├── final-story.png
│ ├── hint-page.png
│ ├── homepage-gamemaster.png
│ ├── homepage-solver.png
│ ├── log-in.png
│ ├── riddle-options.png
│ ├── sign-up.png
│ ├── story-panel.png
│ └── xplore-logo.png
│
├── swagger/ # Design-First API specification
│ ├── api.json
│ └── components.json
│
├── user-stories/ # Gherkin-style user story features
│ ├── attempt_riddle.feature
│ ├── choose_riddle.feature
│ └── enter_story.feature
│
└── README.md```
---
## API Specification
The full OpenAPI spec is defined in [`initial.json`](./initial.json), describing endpoints such as:
- `POST /user`: Create new user (solver or gamemaster)
- `GET /user/{id}/story/{story-id}/panel`: View panels
- `PUT /user/{id}/invitation/{invitation-id}`: Respond to invitations
- `POST /user/{id}/story/{story-id}/riddle`: Add custom riddles
- `GET /user/{id}/answer`: Retrieve answers by solvers---
## Technologies Used
- **OpenAPI 3.0.4**
- **Swagger UI / Editor**
- **JSON/YAML Schema Design**
- **UML Diagrams** (Activity, Class, Use Case)---
## Authors
- Team: Xplore API Team
---
## License
Licensed under the [Apache 2.0 License](https://www.apache.org/licenses/LICENSE-2.0.html).