Skip to content

nickmaheshwari/music_finder

Repository files navigation

Music Finder

About: This Vaadin project uses Deezers Music Search API (https://developers.deezer.com/api/search) to concurrently return a pagable, infinite scroll (until all results have been scrolled) list of cards, providing feedback with 'Loading' and 'Done loading' messages. It takes in a search term as a query and implements paging by using an index (25 results per'page'). This project impliments a toggle-able menu with the music search tab and the about app tab.

This project also implements AWS Cognito User Pools to handle sign in/out, and utilizes a docker container hosted on AWS Lightsail that contains a Quarkus microservice which connects to a MongoDB to manage different user's 'Favorites'. Finally, this project uses AWS SES (deployed via AWS Lambda and called through APIGateway) to send an email from the signed in user (or default@default.com if Cognito Validation is turned off) to me through the 'Contact' section of the 'About' page.

Diagram of project structure: music-search-diagram

Vaadin Auto-generated Docs:

This project can be used as a starting point to create your own Vaadin application with Spring Boot. It contains all the necessary configuration and some placeholder files to get you started.

Running the application

The project is a standard Maven project. To run it from the command line, type mvnw (Windows), or ./mvnw (Mac & Linux), then open http://localhost:8080 in your browser.

You can also import the project to your IDE of choice as you would with any Maven project. Read more on how to set up a development environment for Vaadin projects (Windows, Linux, macOS).

Deploying to Production

To create a production build, call mvnw clean package -Pproduction (Windows), or ./mvnw clean package -Pproduction (Mac & Linux). This will build a JAR file with all the dependencies and front-end resources, ready to be deployed. The file can be found in the target folder after the build completes.

Once the JAR file is built, you can run it using java -jar target/myapp-1.0-SNAPSHOT.jar (NOTE, replace myapp-1.0-SNAPSHOT.jar with the name of your jar).

Project structure

-tracked by master repo

  • MainView.java in src/main/java contains the navigation setup (i.e., the side/top bar and the main menu). This setup uses App Layout.
  • views package in src/main/java contains the server-side Java views of your application.
  • views folder in frontend/ contains the client-side JavaScript views of your application.
  • themes folder in frontend/ contains the custom CSS styles.

Useful links

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published