ThallForge is a streaming platform dedicated to discovering, streaming, and promoting music. It offers curated music experiences, band recommendations, and access to exclusive content.
The main parts of the project template are:
- [all] - A single content package that embeds all of the compiled modules (bundles and content packages) including any vendor dependencies.
- [core] - Java bundle containing core functionality like OSGi services, listeners, or schedulers, as well as component-related Java code such as servlets or request filters.
- [ui.apps] - Contains the
/apps
(and/etc
) parts of the project, including JS & CSS clientlibs, components, and templates. - [ui.config] - Contains runmode-specific OSGi configurations for the project.
- [ui.content] - Contains sample content using the components from
ui.apps
. - [ui.frontend] - An optional dedicated front-end build mechanism (General Webpack project).
To build all the modules, run the following command in the project root directory with Maven 3:
mvn clean install
To build all the modules and deploy the all
package to a local instance of AEM, run in the project root directory the following command:
mvn clean install -PautoInstallSinglePackage
Or to deploy it to a publish instance, run:
mvn clean install -PautoInstallSinglePackagePublish
Alternatively:
mvn clean install -PautoInstallSinglePackage -Daem.port=4503
To deploy only the bundle to the author, run:
mvn clean install -PautoInstallBundle
To deploy only a single content package, run in the sub-module directory (i.e ui.apps
):
mvn clean install -PautoInstallPackage
- Music Streaming: Stream high-quality music tracks.
- Player Component: Basic functionality including play, pause, skip, volume control, and shuffle.
- Content Discovery: Genre-based navigation and trending albums to help users discover music.
- Music Player - Configurable audio playback with repeat and shuffle features.
- Album Tracklist - Displays tracks for a specified album with download links.
- Genre Explorer - Displays filtered albums based on selected genres.
- Artist Spotlight - Shows albums and songs for a specified artist.
- Latest Releases - Carousel of the latest album releases based on author-defined limits.
- Artist Profiles - Accordion items with nested components for artist information.
- Footer - Configurable links and logo for the page footer.
- Header - Configurable links and logo for the page header.
- Top-Fans Banner - Displays a message to the top user based on interaction counts.
- XF Header - Imports header from page properties.
- XF Footer - Imports footer from page properties.
- Text
- Teaser
- Image
- Breadcrumb
- List
- Experience Fragment
- Language Navigation
- Title
- Download
- Sharing
- Structure Components
- Content Components
- Content Fragments
- Custom Templates
- Experience Fragments
- Endpoints/Servlets
- Schedulers
- Filter Implementation
- Custom Clientlibs/Validators
- Custom Users
- Artist Data Source Update (Scheduler):
- Functionality: Updates the artist data source JSON file every 12 hours.
- Source: Data is updated from a configured JSON file.
- Music-Player Shuffle API:
- Endpoint:
${resource-path}._jcr_content.shuffle.json
- Functionality: Fetches details about a randomly picked tracked from the selected album path.
- Format: JSON response with an object containing album data.
- Endpoint:
Deploy on AEM Cloud Service using Maven and Cloud Manager.