Gober, stands for Go Berita
, is a monorepo project for aggregating news/article from various websites.
- Backend: Written in Go, provides REST APIs for scraping and fetching news articles.
- Frontend: Built with Vue.js, displays the news in an elegant, user-friendly web interface.
- Scrape popular articles from multiple websites (e.g., detik.com, kompas.com).
- Search articles by keyword. (WIP)
- Fetch article details with enriched content links.
- Responsive frontend design for desktop and mobile.
Sites | Status | Query Param | Origin |
---|---|---|---|
detik.com | ✅ | ?source=detik |
🇮🇩 |
kompas.com | ✅ | ?source=kompas |
🇮🇩 |
tribunnews.com | 🔜 | ?source=tribun |
🇮🇩 |
cnnindonesia.com | 🔜 | ?source=ccnid |
🇮🇩 |
- ✅: Up
- ❌: Need Fix
- 🔜: Coming Soon
- Go (Golang)
- Gin Web Framework
- goquery (for web scraping)
- Mockable HTTP client for testing
- Vue.js
- Axios (for API calls)
- CSS Grid and Flexbox for responsive layouts
-
Backend:
-
Frontend:
git clone https://github.com/your-username/gober.git
cd gober
make serve
git clone https://github.com/your-username/gober.git
cd gober
-
Navigate to the root directory (if not already there):
cd gober
-
Install dependencies:
go mod tidy
-
Run the backend server:
go run main.go
-
API Endpoints:
The server will run athttp://localhost:8080
. You can access the following endpoints:- Get popular articles:
/articles/popular?source=detik
- Search articles:
/articles?source=detik&q=keyword
- Get article details:
/article?detailUrl=encoded_url
See Available Sites for
source
. - Get popular articles:
- Navigate to the
web
directory:cd web
- Install dependencies:
npm install
- Run the development server:
npm run dev
- Open your browser and visit
http://localhost:8001
to view the web application.
gober/
├── parsers/ # Parsers for different news websites
├── models/ # Data models
├── utils/ # Utilities (e.g., HTTP client, helper functions)
├── main.go # Entry point for the backend server
├── web/ # Frontend codebase (Vue.js)
│ ├── src/ # Source code
│ │ ├── components/ # Vue components
│ │ ├── views/ # Application views
│ │ └── assets/ # Static assets (CSS, images, etc.)
├── go.mod # Backend dependencies file
├── go.sum # Backend dependency checksums
├── README.md # Project documentation
└── .gitignore # Ignored files for Git
- Navigate to the root directory:
cd gober
- Run tests:
go test ./...
We welcome contributions!
- Fork the repository
- Create a new branch (
feature/my-feature
) - Submit a pull request
This project is licensed under the MIT License. See the LICENSE file for details.