A modern, production-ready RESTful API for managing news articles with advanced features
GONews has been migrated to open source! ๐ We welcome contributions from the community. โ Learn about the migration
- ๐ Article Management - Full CRUD operations with versioning
- ๐ฅ User System - Authentication, roles, and profiles
- ๐ Smart Search - AI-powered semantic search with OpenAI
- ๐ฑ Real-time - WebSocket support for live updates
- ๐ Multi-language - English, Spanish, Turkish support
- ๐ Analytics - Comprehensive metrics and tracking
- ๐จ Breaking News - Priority alerts and notifications
- ๏ฟฝ Stories System - Ephemeral content like Instagram stories
- ๐ฅ Video Support - Embedded video content and processing
- ๐ด Live Streams - Real-time event coverage
- ๐ฑ Mobile-First - Optimized for mobile applications
- ๐ก๏ธ Security - JWT authentication, role-based access
- โก Performance - Redis caching, HTTP/2 support
- ๐ Observability - Prometheus metrics, Grafana dashboards
- ๏ฟฝ DevOps - Docker, Kubernetes, CI/CD ready
- Go 1.24+
- PostgreSQL 15+
- Redis 7+
- Docker (optional)
# 1. Clone the repository
git clone https://github.com/Madraka/GONews.git
cd GONews
# 2. Start services with Docker
make dev-up
# 3. Run the API
make dev
# 4. Visit API documentation
open http://localhost:8081/swagger/index.html
# 1. Install dependencies
go mod download
# 2. Configure environment
cp .env.example .env # Edit with your settings
# 3. Start database
make db-up
# 4. Run migrations
make migrate-up
# 5. Start API server
make run
Resource | Description |
---|---|
๏ฟฝ Documentation Hub | Complete documentation index |
๐ Developer Guide | Setup and development workflow |
๐ Open Source Guide | How to contribute |
๐ API Reference | Complete API documentation |
# Development environment (recommended)
make env-dev && make dev-up && make dev
# Testing environment
make env-test && make test-all
# Production environment
make env-prod && make prod-deploy
make build # Build application
make test # Run tests
make migrate-up # Run database migrations
make docs # Generate API documentation
make docker-build # Build Docker image
News/
โโโ ๏ฟฝ README.md # Project overview (you are here)
โโโ ๐ docs/ # Complete documentation
โ โโโ README.md # Documentation index
โ โโโ DEVELOPER_GUIDE.md # Development setup
โ โโโ api_documentation.html # API reference
โโโ ๐ cmd/ # Application entry points
โโโ ๐ internal/ # Private application code
โโโ ๐งช tests/ # Comprehensive test suite
โโโ ๐ณ deployments/ # Docker & Kubernetes configs
โโโ ๐ monitoring/ # Observability setup
โโโ ๏ฟฝ๏ธ scripts/ # Build and utility scripts
โ See complete project structure in docs
GET /api/articles
- List articles with paginationPOST /api/articles
- Create new article (auth required)GET /api/search
- Semantic search with AIGET /api/breaking
- Breaking news alertsGET /api/stories
- Stories feed
GET /api/videos
- Video content managementGET /api/live
- Live stream endpointsWebSocket /ws
- Real-time updatesGET /metrics
- Prometheus metrics
โ Complete API documentation
We welcome contributions! This is an open source project.
- Read the Contributing Guide
- Fork the repository
- Create a feature branch
- Submit a pull request
- ๏ฟฝ Bug fixes and stability improvements
- โจ New features and enhancements
- ๐ Documentation improvements
- ๐งช Test coverage expansion
- ๐ Internationalization (new languages)
- ๐จ UI/UX improvements for API responses
- Article Management System
- User Authentication & Authorization
- REST API with Swagger Documentation
- Multi-language Support
- Redis Caching & PostgreSQL
- AI-Powered Semantic Search
- Video Content Support
- Real-time WebSocket Updates
- HTTP/2 Implementation
- GraphQL API
- Advanced Analytics Dashboard
- Mobile Push Notifications
- Content Recommendation Engine
- Advanced Search Filters
# Development
make dev-deploy
# Production
make prod-deploy
- ๐ณ Docker - Complete containerization
- โธ๏ธ Kubernetes - Production orchestration
- ๐ Docker Swarm - Simple clustering
- ๐ฅ๏ธ Bare Metal - Traditional deployment
- ๐ Metrics: Prometheus + Grafana dashboards
- ๐ Tracing: OpenTelemetry integration
- ๐ Logging: Structured logging with levels
- โก Performance: Built-in profiling endpoints
Access monitoring at http://localhost:3000
(Grafana)
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with โค๏ธ using Go and modern technologies
- Thanks to all contributors and the open source community
- Powered by OpenAI for semantic search capabilities
โญ Star this repository if you find it useful!
๐ Found a bug? Report it here
๐ก Have an idea? Start a discussion
๐ง Questions? Check our documentation first
- ๐ GitHub Repository: https://github.com/Madraka/GONews
- ๐ Issues: https://github.com/Madraka/GONews/issues
- ๐ฌ Discussions: https://github.com/Madraka/GONews/discussions
- ๐ Wiki: https://github.com/Madraka/GONews/wiki (Coming Soon)