Boardwise is a comprehensive digital ecosystem for board game enthusiasts that consolidates collection management, a peer-to-peer marketplace, community events, and a collaboratively maintained shared rulebook library into a single platform.
A COS 301 Capstone Project — University of Pretoria Team: Works On My Machine™ · Client: EPI-USE Labs
Boardwise digitises and expands the tabletop gaming experience for the South African board gaming community, which remains largely offline and fragmented. The platform is a store-agnostic ecosystem where enthusiasts can connect, rent and sell games peer-to-peer, organise events, and collaboratively maintain a shared library of digitised rulebooks.
The system is built around three core domains, each owned by a dedicated backend service: a User & Community Service, a Marketplace Service, and a Shared Library (The Vault) with an AI ingestion pipeline.
| Resource | Link |
|---|---|
| Software Requirements Specification (SRS) | View SRS |
| GitHub Project Board | Open Board |
| UI Wireframes & Designs | Open Designs |
| Brand Style Guide | View Guide |
| Feature | What it does | Built with |
|---|---|---|
| Shared Rulebook Library (The Vault) | Upload, browse, read and collaboratively edit digitised rulebooks with version history | Spring Boot · FastAPI · MongoDB · Cloudflare R2 |
| Marketplace | Create, browse and manage peer-to-peer rental and sale listings; discover external retail sources | Spring Boot · MongoDB · Cloudflare R2 |
| Community & Events | Schedule public, friends-only and private events; RSVP and manage attendees | Spring Boot · MongoDB |
| User Profiles & Social | Manage profiles, game inventory, preferences, friends and groups | Spring Boot · Spring Security · JWT |
Boardwise follows a Client–Server architecture using Service-Oriented Architecture (SOA) as the overarching style, with Component-Based and Domain-Driven design as client-mandated requirements. Each backend service is a bounded context with a Layered (Controller → Service → Repository) internal structure.
The AI ingestion pipeline in The Vault processes uploads asynchronously through sequential stages (Sanitise → Extract) via FastAPI.
┌──────────────────────────┐
│ Vue.js SPA (Browser) │
└────────────┬─────────────┘
│ HTTPS / REST + WebSocket
┌────────────▼─────────────┐
│ Nuxt / Node.js BFF │ ← Auth Guard, route splitting
└──┬──────────┬─────────┬───┘
REST │ │ │ REST (direct-to-service)
┌──────────────▼┐ ┌──────▼──────┐ ┌▼───────────────┐
│ User Service │ │ Marketplace │ │ The Vault │
│ (Spring Boot) │ │ (Spring Boot)│ │ Spring Boot + │
│ Auth · Social │ │ Listings │ │ FastAPI Gateway │
└───────┬───────┘ └──────┬──────┘ └───────┬─────────┘
│ │ │
┌───────▼─────────────────▼─────────────────▼─────────┐
│ MongoDB Atlas · Cloudflare R2 (PDFs/images) │
└──────────────────────────────────────────────────────┘
- Event Sourcing records every rulebook edit as an immutable event for full auditability.
- WebSocket push powers real-time collaborative editing with MRSW (Multi-Reader Single-Writer) locking.
See the full SRS for component diagrams, API service contracts and the traceability matrix.
Boardwise is developed by a multidisciplinary team of University of Pretoria Computer Science students.
| Team Member | Role | Focus Area | |
|---|---|---|---|
| Hayley Booysen (Team Lead) | Project Manager · UI Engineer | Project coordination, frontend architecture, UI/UX direction | |
| Karabo Nkomo | Services Engineer · Systems Architect | Backend services, system architecture, deployment | |
| Njabulo Mathonsi | DevOps Engineer · Services Engineer | CI/CD, backend services, data flow & authentication | |
| Palesa Nkosi | UI/UX Designer · UI Engineer | Responsive UI, accessibility, interface & experience design | |
| Bandile Mnyandu | Services Engineer · Integration Engineer | Backend validation, integration, testing strategy |
Boardwise follows a modular monorepo focused on scalability, maintainability, and separation of concerns.
boardwise/
├── .github/ # GitHub workflows and CI/CD
├── ai/ # FastAPI AI Gateway (PDF ingestion pipeline)
│ ├── app/
│ │ ├── models/
│ │ ├── pipeline/ # Sanitise → Extract
│ │ ├── routers/
│ │ └── services/
│ ├── tests/
│ └── main.py
│
├── backend/ # Spring Boot services
│ └── src/main/java/com/boardwise/backend/
│ ├── user_service/ # Auth, profiles, social, events
│ ├── marketplace/ # Listings CRUD
│ ├── vault/ # Collaborative library + MRSW locking
│ ├── databaseimages/
│ └── shared/
│
├── frontend/ # Vue / Nuxt application
│ ├── components/ # Reusable UI + feature components
│ │ ├── features/ # auth, chat, community, library, marketplace, profile
│ │ ├── layout/
│ │ └── ui/ # Base components (BaseButton, BaseSearch, …)
│ ├── composables/
│ ├── pages/ # auth, community, events, library, marketplace, profile
│ ├── services/ # API clients (authService, libraryService, …)
│ ├── public/
│ └── tests/
│
├── docs/ # SRS, brand guide, wireframes, design tokens
└── README.mdBoardwise follows a structured multi-development-branch workflow.
main
└── dev
├── frontend-dev
│ └── feature/*
├── backend-dev
│ └── feature/*
└── integration
└── feature/*
main— stable, production-ready; only tested and reviewed code is merged here.dev— central development branch; integrates all streams before promotion tomain.frontend-dev— primary frontend development branch.backend-dev— primary backend development branch.integration— system-wide integration and combined testing.feature/*— individual features branch from their respective parent branch, merged via pull request.
Every pull request requires peer review, passing tests, and clean integration into the target branch.
# Clone the repository
git clone https://github.com/your-org/boardwise.git
cd boardwise
# Frontend
cd frontend && npm install && npm run dev
# Backend (Spring Boot services)
cd backend && ./mvnw spring-boot:run
# AI Gateway
cd ai && pip install -r requirements.txt && uvicorn main:app --reload| Document | Description |
|---|---|
| SRS | Functional & non-functional requirements, use cases, domain model, API contracts, architecture |
| Brand Style Guide | Colour palette, typography, components, accessibility |
| Wireframes | UI/UX designs and navigation flows |
| Design Tokens | Global styling variables for frontend consistency |
- Digitise the South African tabletop gaming experience
- Strengthen local gaming communities through events and groups
- Improve rulebook accessibility via a collaborative shared library
- Enable peer-to-peer rentals and sales without retailer lock-in
- Build a maintainable, scalable, free-tier-hosted, open-source platform
Built for the COS 301 Capstone Project 2026 University of Pretoria · in partnership with EPI-USE Labs
Works On My Machine™