ASN & IP Resource Portal

Job ID: 40557918

Budget: $30 – $250 USD

We are looking for an experienced **PHP / Laravel developer** to build a web-based administrative system for managing **ASNs, IPv4 prefixes and IPv6 prefixes**, starting from the public **NIC.br** allocation dataset, validating BGP announcements through **RIPEstat**, and exposing the data through an external API.

This is a **backend-heavy administrative platform** with queue-based processing, data normalization, audit logging, user/permission management and a clean AdminLTE interface for operational use.

## Project scope

The system must automatically download the official NIC.br public file every day:

https://ftp.registro.br/pub/numeracao/origin/nicbr-asn-blk-latest.txt

After download, the system must parse, normalize and store the data in MySQL, organizing the following entities:

* Company
* ASN
* IPv4 prefixes
* IPv6 prefixes

Relationships must allow linking:

* company ↔ ASN
* ASN ↔ IPv4 and IPv6 prefixes
* resources ↔ imported data source

## BGP validation

The platform must validate imported resources using the **RIPEstat public API**.

### ASN validation

Use:
`https://stat.ripe.net/data/announced-prefixes/data.json?resource=AS{ASN}`

The system must determine:

* whether the ASN is announced
* how many prefixes are announced by the ASN
* last validation timestamp

### IPv4 / IPv6 prefix validation

Use:
`https://stat.ripe.net/data/prefix-overview/data.json?resource={PREFIX}`

The system must determine:

* whether the prefix is announced
* origin ASN
* origin holder, when available
* whether the origin ASN matches the ASN assigned in the imported dataset
* last validation timestamp

Validation responses must be stored for auditing and troubleshooting.

## Parallel processing

BGP validation must be implemented with **Laravel Queues** and support concurrent processing of large volumes of ASNs and prefixes.

Expected requirements:

* parallel validation of multiple ASNs
* parallel validation of multiple IPv4 prefixes
* parallel validation of multiple IPv6 prefixes
* multiple queue workers
* retry handling
* timeout handling
* API failure handling
* duplicate job prevention
* full logging
* ability to manually revalidate resources from the admin panel

## Admin panel

The project must use **Laravel + AdminLTE**.

The panel must be designed for **simple administration, fast lookup and efficient resource navigation**.

Minimum modules expected:

* Dashboard
* Companies
* ASNs
* IPv4 Prefixes
* IPv6 Prefixes
* BGP Validations
* Logs
* Users
* Roles / Permissions
* API Keys
* Settings

## Search and filters

The system must provide fast lookup and filtering of resources.

Search by:

* company name
* CNPJ / registration number
* ASN
* IPv4 prefix
* IPv6 prefix

Filters should include:

* announced ASN
* announced prefix
* IPv4 / IPv6
* origin ASN
* company
* active / inactive resources
* mismatch between assigned ASN and origin ASN

## Dashboard

The dashboard must provide operational and management indicators such as:

* total companies
* total ASNs
* total IPv4 prefixes
* total IPv6 prefixes
* announced / non-announced ASNs
* announced / non-announced prefixes
* resources with origin mismatches
* last dataset sync
* last BGP validation

## User, permission and API key management

The application must support multiple users with role-based and permission-based access control.

The system must include management of:

* users
* roles
* permissions
* API keys

Suggested roles:

* Super Administrator
* Administrator
* Analyst
* Viewer

API key management must support:

* creation
* revocation
* expiration
* permission assignment
* linking keys to users or roles when necessary

## External API

The platform must expose a **REST API** for external queries.

The API must support authentication using **API keys** and provide access to:

* companies
* ASNs
* prefixes
* ASN lookup
* prefix lookup
* BGP status lookup
* search

All API usage must be logged.

## Architecture prepared for future expansion

Although phase 1 will use the **NIC.br** dataset, the system **must be designed from the beginning to support future integration with other IRR / RIR sources**, including:

* ARIN
* APNIC
* AFRINIC
* RIPE NCC
* LACNIC

This means the data model, import services and code structure **must not be tightly coupled only to the NIC.br file format**. The project should be built with a modular architecture prepared for multiple registries and multiple data sources.

## Required stack

* PHP 8.3+
* Laravel 11 or 12
* MySQL 8
* Redis
* AdminLTE
* JavaScript for UI usability improvements
* Bootstrap

## Technical expectations

The project must follow:

* PSR-4
* PSR-12
* SOLID principles
* Clean Code
* Service Layer architecture
* Repository Pattern where appropriate
* Laravel Scheduler
* Laravel Queues
* Migrations
* Seeders
* Structured logging
* Automated tests for core features

## Repository and development workflow

The project will be developed **inside the company’s private GitHub repository**.

Requirements:

* the developer must work directly in the company private GitHub repository
* all source code must be versioned there
* commit history must reflect real project progress
* we will not accept a final delivery as a compressed source package without proper repository history

## Required documentation

The developer must provide complete documentation, including:

### 1. Debian 13 deployment documentation

* dependency installation
* PHP / Laravel / MySQL / Redis setup
* queue, scheduler and supervisor configuration
* Nginx or Apache configuration
* environment variables
* update procedure

### 2. Process documentation

* NIC.br import workflow
* BGP validation workflow
* worker / queue execution
* data synchronization
* user and permission management
* API key management
* audit logging

### 3. API documentation

* authentication
* endpoints
* parameters
* request examples
* response examples
* error codes
* permission rules

## Expected deliverables

* complete source code
* working Laravel project
* MySQL structure
* migrations
* seeders
* complete documentation
* `.env.example`
* scheduler configuration
* queue configuration
* supervisor configuration
* installation and operational instructions

## Payment terms

This project will be paid as a **single milestone**.

**Payment will only be released after 100% delivery of the project**, including all requested features, source code committed to the company private GitHub repository, complete documentation and a deployment-ready system.

**We do not release payment for partial deliveries, incomplete prototypes or partial scope execution.**

If you have real experience with **Laravel, queue-based processing, REST APIs, MySQL/Redis, admin panels and technical documentation**, please send your proposal including:

* your Laravel experience in admin / data management systems
* your experience with queues and concurrent processing
* your experience with authenticated REST APIs
* your experience with MySQL and Redis
* estimated delivery time
* examples of similar projects