Back to Case Studies
Case Study

Public Contracts Discovery Platform

A commercial team was spending hours every day scanning the Diário da República (dre.pt) to decide where to bid. We built a web platform that automatically aggregates tenders from DRE and provides a CRM/Kanban workflow—including manually added opportunities—with multi-user login and role-based access control (RBAC).

2-week MVP sprint
Public Procurement
<24h refresh latency
Public Contracts Platform

The Challenge

The commercial team faced daily bottlenecks in public tender discovery:

  • Fragmented discovery: Manual scanning of DRE across spreadsheets and bookmarks with no unified view.
  • No pipeline visibility: No way to prioritize, assign, or monitor proposal statuses in one place.
  • Time-sensitive deadlines: Repetitive checks with high risk of missing critical submission dates.
  • Manual opportunity tracking: Non-DRE leads scattered across emails and notes.

The Solution

We delivered a secure, multi-user web platform that centralizes and automates daily tender collection with a filterable, actionable CRM/Kanban view.

Tech Stack

Backend
Python / Flask
Scraping
BeautifulSoup / Scrapy
Database
PostgreSQL
Frontend
HTML/CSS/JS + HTMX
Auth & Security
bcrypt, rate-limiting
Notifications
SendGrid / SMTP

Key Features

Authentication & RBAC
Multi-user login with Admin, Commercial Manager, and Reader roles; password reset flows.
Automatic DRE Aggregation
Daily crawler ingests tenders (title, entity, location, dates, links) with deduplication by reference.
List, Filters & Search
Filter by buyer, location, phase, date ranges; quick/exact search; default sort by deadline.
Kanban Workflow
Drag-and-drop pipeline with configurable columns: To review → In analysis → In progress → Submitted → Won/Lost.
Manual Opportunities
Create/edit opportunities with same fields; origin marked "Manual" for non-DRE leads.
Email Digests & Alerts
Daily summaries of new entries; D-7/D-3/D-1 deadline reminders per owner.
Security & Ops
HTTPS, bcrypt hashing, login rate-limiting; daily DB & file backups; respectful crawling with robots.txt compliance.
Opportunity Detail View
Full metadata + DRE link, internal notes, tags, and file attachments.

The Results

100%
Relevant DRE coverage (MVP target)
<24h
Refresh latency for new tenders
99.5%
Platform availability uptime
Measurable
Reduction in daily triage time

The MVP delivered in just 2 weeks transformed the commercial team's workflow. Daily manual scanning was replaced by an automated, centralized system that ensures no opportunity is missed.

With RBAC, the team can now collaborate securely, track proposals through a visual Kanban, and receive timely deadline alerts—all within a single, unified platform.

"Before, we spent 2–3 hours every morning just combing through DRE. Now, we log in, see everything filtered and sorted by deadline, and can focus on actually preparing proposals. The deadline alerts alone have saved us from missing critical submissions."

CM
Commercial Manager
Public Procurement Team

Process & Timeline

1

Discovery & Planning (Day 1–2)

Mapped current workflow, DRE structure, and user roles. Defined MVP scope: automatic DRE aggregation, RBAC, Kanban, and deadline alerts.

2

Backend & Crawler (Day 3–7)

Built Python/Flask backend with PostgreSQL; implemented DRE crawler with deduplication; set up auth & RBAC.

3

Frontend & Kanban (Day 8–11)

Designed and built responsive UI with list/filters, drag-and-drop Kanban, and opportunity detail views.

4

Notifications & Security (Day 12–13)

Integrated email digests and deadline alerts; hardened security (HTTPS, rate-limiting, bcrypt); configured daily backups.

Testing & Launch (Day 14)

User testing with commercial team; final fixes; deployed to production with monitoring and support handoff.

Ready to streamline your workflow?

Let's build a custom solution that automates your repetitive tasks and helps you focus on what matters most.