Claim Check is a web app that helps people quickly check if a statement is likely true or likely false.
You type or paste a claim (or even a full article text). The app sends it to the backend, which asks Gemini AI to search the web, gather informations and compare the results. Then the app shows:
- a verdict (for example: likely true, likely false, mixed evidence, or not enough information),
- a short explanation in plain language,
- source links used for the conclusion.
Users can create an account, sign in, and track their daily check quota.
- Frontend: Angular 19, TypeScript
- UI: PrimeNG, PrimeIcons, Tailwind CSS 4, SCSS
- Backend: Spring Boot 3 (Java 21), Spring Web, Spring Security, Spring Data JPA, Spring Validation
- Auth: JWT (JSON Web Token)
- Database: PostgreSQL
- AI verification: Google Gemini API (
gemini-2.5-flash) with Google Search tool enabled - API docs: Swagger UI / OpenAPI (springdoc)
- Build tools: Maven Wrapper (
mvnw), npm - Testing stack: JUnit 5, Spring Boot Test, Spring Security Test, Testcontainers, H2 (test scope)
- Java 21
- Node.js and npm
- PostgreSQL running locally
cd spring_boot_server
cp .env.example .envEdit .env and set your real values:
SPRING_DATASOURCE_URLSPRING_DATASOURCE_USERNAMESPRING_DATASOURCE_PASSWORDGEMINI_API_KEYJWT_SECRET
Add this line so backend port matches frontend config:
SERVER_PORT=5000Run the backend:
./mvnw spring-boot:runBackend will be available at:
http://localhost:5000- Swagger UI:
http://localhost:5000/swagger-ui.html
In a new terminal:
cd angular_client
npm install
npm run start -- --configuration productionFrontend will be available at:
http://localhost:4200
- Register a new account.
- Log in.
- Paste a claim in the input box.
- Submit and read the verdict, explanation, and sources.