1 unstable release
Uses new Rust 2024
| 0.1.0 | Sep 28, 2025 |
|---|
#842 in Network programming
25KB
408 lines
Bangladesh Education Board Results API
A fast, reliable REST API for fetching Bangladesh Education Board results. Built with Rust and Axum for high performance and reliability.
Features
- 🚀 Fast and efficient result fetching
- 🔧 Built with Rust for performance and safety
- 📊 Support for multiple examination types (SSC, HSC, JSC, etc.)
- 🏫 All major education boards supported
- 🔄 Automatic captcha solving
- 📡 RESTful API with JSON responses
- 📝 Comprehensive logging and error handling
Supported Examinations
- SSC/Dakhil/Equivalent
- JSC/JDC
- SSC (Vocational)
- HSC/Alim
- HSC (Vocational)
- HSC (BM)
- Diploma in Commerce
- Diploma in Business Studies
Supported Boards
- Barisal
- Chittagong
- Comilla
- Dhaka
- Dinajpur
- Jessore
- Mymensingh
- Rajshahi
- Sylhet
- Madrasah
- Technical
- DIBS (Dhaka)
API Usage
Endpoint
GET /fetch
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| exam | string | Yes | Examination type (e.g., ssc) |
| year | string | Yes | Year (1996-2025) |
| board | string | Yes | Board name |
| roll | string | Yes | Roll number (max 6 digits) |
| reg | string | Yes | Registration number |
Example Request
curl "http://localhost:3000/fetch?exam=ssc&year=2024&board=dhaka&roll=123456®=1234567890"
Example Response
{
"roll": "123456",
"reg": "1234567890",
"name": "Student Name",
"father_name": "Father's Name",
"mother_name": "Mother's Name",
"board": "Dhaka",
"group": "Science",
"exam_type": "Regular",
"dob": "01-01-2008",
"institute": "School Name",
"result": "Passed",
"gpa": "5.00",
"grades": [
{
"subject": "Bangla",
"grade": "A+"
},
{
"subject": "English",
"grade": "A"
}
]
}
Installation
Prerequisites
- Rust 1.70+ (install from rustup.rs)
- Git
Build from Source
# Clone the repository
git clone https://github.com/Junaid433/eduboardapi.git
cd eduboardapi
# Build the project
cargo build --release
# Run the server
cargo run --release
The API server will start on http://localhost:3000
Configuration
The server runs on port 3000 by default. You can modify this in src/main.rs:
let addr: SocketAddr = "0.0.0.0:3000".parse()?;
Development
# Run in development mode with hot reloading
cargo watch -x run
# Run tests
cargo test
# Check code quality
cargo clippy
# Format code
cargo fmt
Error Handling
The API returns appropriate HTTP status codes:
200 OK- Successful request400 Bad Request- Invalid parameters or captcha error502 Bad Gateway- Network error or parsing error
Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Disclaimer
This API is for educational purposes only. The data belongs to the Bangladesh Education Board. Please use responsibly and in accordance with the board's terms of service.
Acknowledgments
- Bangladesh Education Board for providing public access to results
- The Rust community for excellent libraries and tools
Support
If you find this project helpful, consider:
- ⭐ Starring the repository
- 🐛 Reporting bugs
- 💡 Suggesting new features
- ☕ Buy me a coffee
Contact
Junaid Rahman - @Junaid Rahman
Project Link: https://github.com/Junaid433/eduboardapi
Dependencies
~14–32MB
~442K SLoC