A comprehensive fact-checking application built with Go backend and React frontend, featuring Google OAuth2 authentication and AI-powered news verification.
- Backend: Go REST API with JWT authentication, rate limiting, and secure middleware
- Frontend: React dashboard with Google OAuth2 integration
- Database: PostgreSQL for news storage and user management
- AI Integration: OpenAI API for automated fact-checking
- Security: JWT tokens, CORS, input validation, and rate limiting
- Docker: Containerized deployment for both frontend and backend
- CI/CD: GitHub Actions workflow for automated testing and deployment
├── backend/ # Go REST API service
├── frontend/ # React frontend application
├── docker/ # Docker configuration files
├── k8s/ # Kubernetes deployment manifests
├── .github/ # GitHub Actions workflows
└── docs/ # Documentation and API specs
- Go 1.21+
- Node.js 18+
- Docker & Docker Compose
- PostgreSQL 15+
- OpenAI API key
- Copy
.env.exampleto.envand configure your environment variables - Set up your Google OAuth2 credentials
- Configure your OpenAI API key
# Quick Setup (Recommended)
./setup.sh
# Manual Setup
# Backend
cd backend
go mod download
go run cmd/server/main.go
# Frontend
cd frontend
npm install
npm run dev
# Docker (full stack)
docker-compose up -d# Build and deploy
docker-compose -f docker-compose.prod.yml up -d
# Kubernetes deployment
kubectl apply -f k8s/POST /auth/login- Google OAuth2 loginGET /auth/callback- OAuth2 callback handlerPOST /auth/logout- User logoutPOST /news/submit- Submit news for verificationGET /news/verify/:id- Verify news using AIGET /news/user/:id- Get user's news submissions
-
Clone the repository
git clone git@github.com:devrob-go/go-chat-ai.git cd fact-check -
Run the setup script
./setup.sh
-
Configure your environment
- Edit
.envfile with your credentials - Set up Google OAuth2 credentials
- Configure OpenAI API key
- Edit
-
Access the application
- Frontend: http://localhost:3000
- Backend: http://localhost:8080
If you encounter issues, check the Troubleshooting Guide for common solutions.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests and ensure they pass
- Submit a pull request
MIT License - see LICENSE file for details