MMM manages memes.
This is a personal project I built to help me search memes I have saved from the Internet.
I also built this project to gain a deeper understanding on how Spring Boot, Spring Security, Spring Session, Spring Data JPA, Spring AI, AWS SDK for Java, Lombok, Hibernate and a bunch of other Java libraries work together to build a scalable, production-grade Java web application.
If this application is useful or interesting to you, consider giving it a star on GitHub.
This application also comes with a frontend web UI available here.
- Semantic Search with Cohere Embed and PostgreSQL
pgvector
- Full Text Search with PostgreSQL
tsvector
- AI Tag Suggestions with Anthropic Claude Sonnet 3
- Authentication and Session management with Spring Security and Spring Session
- Responsive frontend design with ShadCN UI and Next.js
- Clone this repository.
$ git clone https://github.com/arvl130/mmm
- Configure the environment variables.
$ export SPRING_DATASOURCE_URL=
$ export AWS_REGION=
$ export AWS_ACCESS_KEY_ID=
$ export AWS_SECRET_ACCESS_KEY=
$ export AWS_S3_BUCKET=
$ export AWS_S3_BUCKET_BASE_URL=
$ export AWS_BEDROCK_MODEL_ID=
$ export RESEND_API_KEY=
$ export MAIL_FROM_URL=
$ export APP_URL=
- Install the project dependencies, compile the code, and build the application.
$ mvn clean install
- Run the application.
$ mvn spring-boot:run
- (Optional) Build and deploy to an AWS Lambda environment with the SAM CLI.
$ cp samconfig.toml.example samconfig.toml
$ vi samconfig.toml # Enter the values for your environment variables, then press :wq to quit.
$ sam build -u
$ sam deploy
This project is licensed under the MIT License.
Copyright © 2025 Angelo Geulin