Skip to content

COS301-SE-2026/Boardwise

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

470 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Boardwise

BOARDWISE

CONNECT • SHARE • PLAY

Team

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.


Vue Nuxt SpringBoot FastAPI MongoDB


Project Badges

Build Coverage Requirements Issues Monitoring License


SHARED LIBRARY • MARKETPLACE • COMMUNITY

A COS 301 Capstone Project — University of Pretoria Team: Works On My Machine™ · Client: EPI-USE Labs


Project Overview

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

Core Features

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

Technology Stack

Frontend & UI

Vue Nuxt ScopedCSS

Backend & Core

SpringBoot NodeJS MongoDB R2

AI & Ingestion

Python FastAPI

Infrastructure & DevOps

Docker GitHubActions Render


Architecture at a Glance

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.


Team

Boardwise is developed by a multidisciplinary team of University of Pretoria Computer Science students.

Team Member Role Focus Area LinkedIn
Hayley Booysen (Team Lead) Project Manager · UI Engineer Project coordination, frontend architecture, UI/UX direction LinkedIn
Karabo Nkomo Services Engineer · Systems Architect Backend services, system architecture, deployment LinkedIn
Njabulo Mathonsi DevOps Engineer · Services Engineer CI/CD, backend services, data flow & authentication LinkedIn
Palesa Nkosi UI/UX Designer · UI Engineer Responsive UI, accessibility, interface & experience design LinkedIn
Bandile Mnyandu Services Engineer · Integration Engineer Backend validation, integration, testing strategy LinkedIn

Repository Structure

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.md

Branching Strategy

Boardwise 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 to main.
  • 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.


Getting Started

# 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

Documentation

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

Project Goals

  • 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™

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors