Your personalized gateway to the world’s news. Discover, bookmark, and customize your news experience across sources and languages.
A modern news aggregation platform built with Laravel (backend) and React (frontend).
- 🔍 News aggregation from multiple sources
- 🎯 Personalized feeds and preferences
- 🔖 Article bookmarking
- 🌍 Multi-language support (EN, FR, DE)
- 🌙 Dark/Light mode
- 📱 Responsive design
- 🔐 User authentication with email verification
- Docker Desktop
- Git
-
Clone and setup
git clone <repository-url> cd nanle-home-task make setup
-
Access the application
- Frontend: http://nanle.local:3000
- API: http://nanle.local.api:8000
- API Docs: http://nanle.local.api:8000/docs
make setup # setup the entire application
make help # Show all commands
make up # Start services
make down # Stop services
make logs # View logs
make test # Run backend tests
make shell-backend # Backend container accessnanle-home-task/
├── backend/ # Laravel API
├── frontend/ # React app
├── docker-compose.yml
└── Makefile
Backend: Laravel 11, MySQL 8.0, Redis, Laravel Passport
Frontend: React 18, TypeScript, Redux Toolkit, Tailwind CSS
Services: Docker, Nginx, Mailpit (email testing)
Add API keys to backend/.env:
NEWSAPI_KEY=your-key
GUARDIAN_API_KEY=your-keyGet free API keys from:
POST /api/auth/register- User registrationPOST /api/auth/login- User loginGET /api/articles/search- Search articlesGET /api/articles/feed- Personalized feedGET /api/articles/dashboard-stats- Dashboard statisticsPOST /api/articles/{id}/bookmark- Toggle bookmark
# Reset everything
make clean-all
make setup
# Check service status
docker compose ps
# View logs
make logsPart of the Nanle home task assignment.