UX + Systems Case Study
Book Devils — Campus Book Resale System
A role-based desktop application that enables students to buy and resell textbooks with persistent storage and admin oversight.
Role
UX Designer · Frontend Developer · Systems Designer · UI Polish & Consistency
Timeline
~3 months (phased semester project)
Tools
Figma · Java · JavaFX · File I/O (local persistence) · Jira · GitHub
Type
Academic Project · UX + Systems Case Study
Overview
Book Devils is a campus-focused book buying and reselling desktop application built around clear role separation: Buyer, Seller, and Admin.
Instead of relying on fragmented resale spaces, the system creates a structured marketplace with defined permissions, consistent UI patterns, and persistent data across sessions. The project emphasizes systems thinking—designing guardrails that prevent misuse while keeping flows intuitive for each role.
Problem
Campus book resale is often chaotic and unreliable. Most students rely on Facebook groups or OfferUp-style platforms, which aren’t designed for organized, role-based transactions.
Common pain points:
- No dedicated system — listings live in scattered posts and messages
- Manual coordination (“is this still available?”, ghosting, price switching)
- No role separation — anyone can do anything, leading to confusion
- No admin oversight or moderation
- Inconsistent trust and workflow breakdowns
The core problem wasn’t just scale — it was organization, trust, and workflow efficiency.
Context & Constraints
This was a requirement-driven, phased software engineering project built across four structured phases (requirements, analysis/design, implementation, final presentation).
Key constraints
- JavaFX desktop UI limitations
- File-based persistence (no database)
- Timeboxed academic deadlines
- Team-based development with modular ownership
- Features driven by formal requirements and rubrics
These constraints shaped both the UX decisions and the system architecture.
Goals & Success Criteria
Primary goals
→ Create clear, role-based experiences for Buyers, Sellers, and Admins
→ Prevent invalid actions through permissions and guardrails
→ Ensure all data persists reliably across sessions
Success meant
→ A complete, working demo across all roles
→ Flows that feel understandable without instructions
→ A system that is consistent, not just technically functional
→ Delivering on time within strict requirements
Process & Approach
01 — Discovery & Mapping
Began with requirement analysis and role definition. Mapped role-based flows and key screens using wireframes in Figma. Focused early on entry points (login, routing, sign-up) to avoid downstream confusion.
02 — Key Design Decisions
Role-based routing instead of a shared dashboard
Each user enters the system through a role-specific path, reducing cognitive load and preventing misuse.
Consistency as a system, not decoration
I polished and aligned all pages to maintain consistent spacing, typography, button styles, and layout patterns—especially important in a multi-contributor team project.
03 — Iteration & Challenges
Development was modularized by role and contributor. One contributor’s UI did not match the established design system, requiring a full rework to restore consistency. This reinforced the importance of shared design standards in collaborative engineering projects.
Solution
At a high level, Book Devils functions as a role-based marketplace system:
Sign up → Login → Role-based routing → Dashboard actions → Persistent storage
Authentication & Entry
- Users sign up using ASU ID, password, and role selection
- Login routes users to the correct dashboard based on role
Buyer Experience
- Browse the full book collection
- View book details
- Add items to a cart or wishlist
- Complete checkout through the cart
Cart, wishlist, and order data persist across sessions.
Seller Experience
- List books by entering title, author, category, condition, and original price
Pricing logic
Selling price is calculated automatically using a condition-based multiplier:
sellingPrice = roundTo2Decimals(originalPrice × multiplier)
NEW → 1.00
LIKE_NEW → 0.80
MODERATELY_USED → 0.60
HEAVILY_USED → 0.40
This ensures pricing consistency and removes guesswork from sellers.
Admin Experience
- View system metrics (total orders, books sold, products listed)
- Manage user accounts (active vs. suspended)
- Maintain system oversight and integrity
Outcome
- Delivered a complete, working multi-role marketplace demo
- Successfully implemented persistent data storage
- Shipped buyer, seller, and admin flows with clear permissions
- Demonstrated strong UX within technical and academic constraints
Reflection
This project reinforced that good UX is systems thinking. Designing for roles forced me to think beyond screens and into permissions, misuse prevention, and long-term clarity.
What I learned
- Role-based design creates natural guardrails
- Consistency matters more in teams than solo projects
- UX decisions directly affect system stability
If I rebuilt this today
- Replace file persistence with a database for scalability
- Improve error handling and empty states
- Enhance buyer filtering and search interactions
This project reflects how I think: I design for structure, clarity, and misuse, not just ideal users.