ACI 440.2R-17 FRP Strengthening Calculator
Web application for designing externally bonded FRP (Fiber-Reinforced Polymer) strengthening of RC beams and slabs per ACI 440.2R-17.
Features
Flexural Strengthening
- Full ACI 440.2R-17 flexural design with iterative neutral axis solver (20 iterations)
- Support for Carbon (CFRP), Glass (GFRP), and Aramid (AFRP) fiber types
- Environmental exposure conditions: Interior, Exterior, Aggressive
- Service stress checks (steel and FRP creep rupture)
- Detailed MathJax-rendered calculation report with all intermediate steps
Shear Strengthening
- ACI 440.2R-17 Chapter 11 shear design
- U-wrap (3 sides) and two-sided wrapping configurations
- Effective bond length, bond reduction factors, and strain calculations
- Combined shear capacity (FRP + concrete + steel)
General
- Interactive SVG beam cross-section diagram
- Summary cards with pass/fail indicators
- Tabbed interface (Flexural / Shear)
- Electron.js desktop app wrapper
- Railway-ready deployment (Docker)
Quick Start
Web (Development)
pip install -r requirements.txt
python app.py
Open http://localhost:5000
Electron (Desktop)
npm install
npm run electron
Railway Deployment
Push to GitHub and connect to Railway. It auto-deploys via the included Dockerfile.
Project Structure
├── app.py # Flask backend + calculation engines
├── templates/
│ └── index.html # HTML frontend (separate for easy editing)
├── static/
│ ├── css/style.css # Styling
│ └── js/
│ ├── app.js # Tab switching, API calls, MathJax report builders
│ └── graphics.js # SVG beam cross-section generator
├── electron/
│ └── main.js # Electron.js desktop wrapper
├── package.json # Node/Electron config
├── requirements.txt # Python dependencies
├── Dockerfile # Container build
├── Procfile # Railway process definition
├── railway.toml # Railway deployment config
└── skyciv/ # Original SkyCiv calculator (reference)
Tech Stack
- Backend: Python, Flask, gunicorn
- Frontend: HTML, CSS, JavaScript, MathJax
- Desktop: Electron.js
- Deployment: Docker, Railway
References
- ACI 440.2R-17: Guide for the Design and Construction of Externally Bonded FRP Systems for Strengthening Concrete Structures
- ACI 318M-14: Building Code Requirements for Structural Concrete
License
MIT License - Albert Pamonag Engineering Consultancy
Metadata
Release files for frppy 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| frppy-0.1.0.tar.gz | 9.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| frppy-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 19.5 kB
Release files / frppy-0.1.0.tar.gz
| Download URL | frppy-0.1.0.tar.gz |
|---|---|
| Size | 9.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e88ec432bfbdb4534d24b755a89cebb1d95ac1dcbc17c2c7c17ffbf5d238c273
|
|
BLAKE2b-256 checksum How to use checksums |
0bfddb368083e2d8c3d44b57cc24e82fec90a40f1704e02b9969d6ba73cbd7a2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.9
|
Release files / frppy-0.1.0-py3-none-any.whl
| Download URL | frppy-0.1.0-py3-none-any.whl |
|---|---|
| Size | 9.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
42c8d8131d0048921859b4ffd5e0c507614e25a84eeed173b0ebe6e48e65e96e
|
|
BLAKE2b-256 checksum How to use checksums |
2b0f577464b2a1e117c961af07a6d7892d5d74d20b7a9287a68a1cec5cbd323e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.9
|