https://github.com/arvl130/mmm
😱 AI-powered image search for your meme collection
https://github.com/arvl130/mmm
anthropic claude-3 cohere-ai nextjs shadcn-ui spring spring-ai spring-boot spring-security spring-session
Last synced: 7 months ago
JSON representation
😱 AI-powered image search for your meme collection
- Host: GitHub
- URL: https://github.com/arvl130/mmm
- Owner: arvl130
- License: mit
- Created: 2024-12-29T16:12:39.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2025-02-01T14:55:23.000Z (8 months ago)
- Last Synced: 2025-02-01T15:37:20.307Z (8 months ago)
- Topics: anthropic, claude-3, cohere-ai, nextjs, shadcn-ui, spring, spring-ai, spring-boot, spring-security, spring-session
- Language: Java
- Homepage: https://m3.ageulin.com
- Size: 577 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# 😱 Meme Manager MMM
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](https://spring.io/projects/spring-boot),
[Spring Security](https://spring.io/projects/spring-security), [Spring Session](https://spring.io/projects/spring-session),
[Spring Data JPA](https://spring.io/projects/spring-data-jpa), [Spring AI](https://spring.io/projects/spring-ai),
[AWS SDK for Java](https://aws.amazon.com/sdk-for-java/), [Lombok](https://projectlombok.org/),
[Hibernate](https://hibernate.org/) 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](https://github.com/arvl130/mmm).This application also comes with a frontend web UI available [here](https://github.com/arvl130/mmm-ui).
## Features
- Semantic Search with [Cohere Embed](https://cohere.com/embed) and [PostgreSQL](https://www.postgresql.org/) [`pgvector`](https://github.com/pgvector/pgvector)
- Full Text Search with [PostgreSQL](https://www.postgresql.org/) [`tsvector`](https://www.postgresql.org/docs/current/textsearch.html)
- AI Tag Suggestions with [Anthropic Claude Sonnet 3](https://www.anthropic.com/news/claude-3-family)
- Authentication and Session management with [Spring Security](https://spring.io/projects/spring-security) and [Spring Session](https://spring.io/projects/spring-session)
- Responsive frontend design with [ShadCN UI](https://ui.shadcn.com) and [Next.js](https://nextjs.org)## Setup
1. Clone this repository.
```shell
$ git clone https://github.com/arvl130/mmm
```2. Configure the environment variables.
```shell
$ 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=
```3. Install the project dependencies, compile the code, and build the application.
```shell
$ mvn clean install
```4. Run the application.
```shell
$ mvn spring-boot:run
```5. (Optional) Build and deploy to an AWS Lambda environment with the SAM CLI.
```shell
$ 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
```## License
This project is licensed under the MIT License.
Copyright © 2025 Angelo Geulin