Skip to content

Canyonlands

A reimagining Project Supercell's idea. Built on top of new technologies and a new vision. It takes the core concept of Project Supercell and expands it to include a suite of new features and functionality, with the scope for further expansion in the future.

Background

The project is named after Canyonlands National Park in Southern Utah. It is known for its dramatic desert landscapes carved by the Colorado River.

The project draws parallels from important characteristics found in Canyonlands National Park, these include:

  • Depth and Layers: Canyonlands has a unique layered landscape with different geological layers exposed over time. The project has many layers and components that work together to create a scalable system over time.
  • Explore and Discover: Canyonlands is a vast and rugged park, inviting exploration and discovery. Similarly, the project aims to explore new possibilities, discover innovative solutions, and venture into uncharted territories.
  • Resilience and Adaption: The park’s landscape has been shaped by millions of years of erosion, weathering, and adaptation. The project is architected with the key cornerstone of adaptability in mind.
  • Scalability and Expansion: Canyonlands is vast park, covering over 136,610 Hectares (337,570 acres). Just like the sheer scale of the park, the project has ambitious goals in terms of its capabilities and features.
  • Beauty and Aesthetics: The park is known for its breathtaking scenery and unique rock formations. The project aims to create a user-friendly, intuitive, and visually appealing interface, much like the park’s expansive landscape.
  • Endurance and Perseverance: Exploring Canyonlands requires endurance and perseverance, navigating challenging terrain and harsh weather conditions. Developing this project requires similar qualities, overcoming various obstacles through persevering through challenges and skill shortages to achieve success.

This project is broken up into multiple versions, each focussing on building the solution from the ground up based on the previous iteration (version).

Objectives

Canyonlands consists of a multi-user platform wherein anyone can register an account. This product features a unique library for each individual user, where they can list, rate, review, the books they’ve read, music they listen to as well as movies or series they watch. Users can write reviews for their library items. In essence, it is a personal media library manager wherein the user keeps track of their specific items. They can use this product as a reference point to remember what they’ve read, listened to, or watched, whilst making use of the review and rating system to remember what they thought about their items.

Version 1 — Maze (Core Application)

Background

The Maze is the least accessible district of Canyonlands National Park. It’s big, wild, remote, and untamed.

Overview

This version is the core application. It is a reimagining of Project Supercell written in PHP a while ago. It’s completely rebuilt from the ground up on a modern-day technology stack, all the while making use of industry best practices.

This version consists of a monolithic back-end REST API application along with an Angular front-end. AWS is chosen for infrastructural services. The entire application and database have been redesigned, with the explicit view on later phases.

Technology Stack

  • Front-End: Angular
  • Back-End: Spring Boot (Java)
  • Database: PostgreSQL
  • Infrastructure: AWS
  • Version Control: Git
  • CI/CD: GitHub Actions
  • Containerization: Docker and AWS ECS
  • Monitoring: AWS CloudWatch and Elastic Stack
  • Security: Keycloak
  • Testing: JUnit, Mockito, and Postman
  • Project Management: GitHub Projects
  • Documentation: AsciiDoc, MDX and Astro Starlight

Features

Some highlighted features of this version include:

  • User account management
    • Users can register, login, and manage their account.
  • Administrative functionality
    • Admins can manage users and items.
  • User personal library management
    • Users can add, remove, rate, and review items.
  • Library features
    • Movies, Books, Series, Music

Version 2 — Needles (Microservices)

Background

The Needles is one of the four districts that make up Canyonlands National park. It gets its name from clusters of sandstone spires.

Overview

This version takes the result of Version 1: Maze and builds upon it. The core concept of this version is how to take a monolithic application effectively, both in architecture and implementation, and convert it to microservices. Along with rearchitecting the application, a couple of new features will be added.

Features

Some highlighted features of this version include:

  • Users overhaul
    • Social media platform for users
    • Private messages
    • User pages
    • User connections
    • User follows
    • Anonymous mode
  • Forums
    • A forums section will be added to the application, in which users can discuss topics and create/maintain threads.
  • Item Review Overhaul
    • Users can now review items, and it will show on the system library for all to see (once approved).

Version 2.x — Islands in the Sky (Analytics)

Background

Island in the Sky is a mesa that forms the northern part of Canyonlands National Park. The mesa rests on sandstone cliffs over 1000 feet above the surrounding terrain.

Overview

This version takes the result of Version 2: Needles, and builds upon it. The core concept of this version is to emphasize analytics and data. More so, creating a data warehouse for the application. Yes, the application is small and does not constitute a full-fledged data warehouse solution for analytics and business intelligence, but all concepts and principles apply, and the project is a great fit to demonstrate these.

Features

  • Dashboards will be developed and integrated into the web application
    • Users to see their analytics and statistics.
    • Administrators to see overall analytics and statistics.
  • Performance tuning and refinement
  • Data Lakes
  • Data Product

Version 3 — Rivers (Completion)

Background

The Colorado and Green rivers play a crucial role in the context of Canyonlands National Park, as they have carved out the park’s landscape over millions of years. The two rivers converge within the park, with the Colorado River flowing from the northwest and the Green River flowing from the southeast.

Overview

This version takes the result of Version 2: Needles, and builds upon it. The core concept of this version is to finish out the entire platform and get the project to a feature-complete state with only maintenance to be done in the future (at least for now).

Features

  • Video on-demand platform integration
    • Users can create review videos for their items and publish it.
  • Video live stream platform
    • Users can initiate video live streams, after which they have a limited amount of time to publish it to the video on-demand platform before it expires.
  • Podcasts on-demand platform
    • Users can create audio podcasts for their items and publish it.
  • Podcasts live stream platform
    • Users can live stream audio podcasts, after which they have a limited amount of time to publish it to the podcasts on-demand platform.
  • Augment social aspect
    • Users can create live services (streaming or on-demand) for general and not specifically related to a media item.
  • Augment platform
    • Allow for users to create written articles and blog posts for items, including the general space not necessarily related to any media item.

Future Ideas

  • Machine Learning
    • Implement machine learning to suggest items to users based on their library and reviews.
  • AI Chatbot
    • Implement an AI chatbot to help users with their library and reviews.
  • Voice Recognition
    • Implement voice recognition to allow users to add items to their library and write reviews.
  • Native Desktop Application
    • Create a native MacOS desktop application.