Metadata-Version: 2.4
Name: frppy
Version: 0.1.0
Summary: ACI 440.2R-17 FRP strengthening design for concrete beams
Home-page: https://github.com/albertp16/apec-cfrp-beam
Author: Albert Pamonag
Author-email: Albert Pamonag <albert@apeconsultancy.net>
License: MIT
Project-URL: Homepage, https://github.com/albertp16/apec-cfrp-beam
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: author
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-python

# 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)
```bash
pip install -r requirements.txt
python app.py
```
Open http://localhost:5000

### Electron (Desktop)
```bash
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
