Read Me

If you're reading this on GitHubarrow-up-right, then checkout our GitBookarrow-up-right for a nicer reading experience.

Join the community on Spectrumarrow-up-right Build Statusarrow-up-right

Screeshot

Quick Start

Star us on GitHubarrow-up-right if you think we're cool!

What problem are we solving?

  • We do core features, like storing and finding data, really well. We make it fast, easy and enjoyable to manage your data and we do it with security and scalability.

  • We believe the foundation of a good user experience is a good developer experience. If we optimise the developer experience we can deliver the quality users expect in less time, leaving more time to focus on core business problems that make your application unique.

  • This is contrasted to usual development teams with existing architectures, siloed teams, drip fed features and pressure to develop features that make the product unique. This makes it hard to even identify the core features let alone solve them well and leads to a compromised developer experience.

How do we do it?

  • Glue Stack is designed from the ground up to deliver core features that users expect without comprimising developer experience.

  • We scoped out the requirements and glued some of the best developer tools together to create glue stack.

  • To keep the domain simple but relevant, glue stack's domain is multiuser task management, inspired by TodoMVCarrow-up-right.

  • We designed our user interface using Google's Material Design components, with a mobile first mindset, developed a secure, performant and flexbile API and backed that with a relational database.

  • Then we built the whole thing from scratch again and documented the entire process. This allowed us to identify development pain points while refining the process and documentation.

Features

User Features

  • Browser based

  • Mobile ready

  • Easy to find data using search, filters and sorting

  • Fast

  • Secure

  • Reliable

  • Consistent user interface

  • Feels good to use

  • Bulk actions

  • Activity log

  • API for integrations

  • New features are delivered quickly

Developer Features

Architecture

Multitenant, monolithic, 3-tier application with a MySQL database, Spring Boot HTTP API and React Single Page Application.

Tier/Component

Type

Language

Implementation

DB (Database)

Relational

SQL

MySQL (pronounced "my sequel")

API (Application Programming Interface)

JSON over HTTP

Java

Spring Boot

UI (User Interface)

SPA (Single Page Application)

Javascript

React

Continued at Architecture.

API

Querydslarrow-up-right for composing type safe database queries inside the API and bulding queries from request parameters. Querydsl makes it easy to have a secure, performant API whilst supporting the wide range of front end queries we require. Without it, the API would be an error prone, string concatenation mess.

UI

Reactarrow-up-right is a really simple but powerful abstraction for the frontend especially when the setup is taken care of by Create React Apparrow-up-right.

Our custom connect component turned out to be an essential abstraction for this project when handling network requests in React. It allowed us to make our UI simpler and less stateful than other single page applications.

Material-UIarrow-up-right for the building blocks of user interfaces. This type of library is essential for efficient front end development and really highlights how useful React can be.

Last updated