base on Automated pentest reporting with custom Word templates, project tracking, and client management tools. Streamline your security workflows effortlessly!
# APTRS
<p align="center">
<img src="https://repository-images.githubusercontent.com/558932728/6a0fb8ea-a539-4ba6-8ef8-2ee7fb0b3f17" width="500" height="400"/>
</p>
APTRS (Automated Penetration Testing Reporting System) is a Python and Django-based automated reporting tool designed for penetration testers and security organizations. This tool streamlines the report generation process by enabling users to create PDF and Excel reports directly, eliminating the need for manual approaches. Additionally, APTRS offers a systematic way to monitor and manage vulnerabilities within various projects. Keep your penetration testing projects organized and efficient with APTRS.
<br/><br/>
[](https://github.com/sponsors/Anof-cyber)
[](https://www.python.org/downloads/release/python-391/)
[](https://nodejs.org/en/download/package-manager)


[](https://github.com/APTRS/APTRS)
[](https://github.com/Anof-cyber/APTRS/actions/workflows/django.yml)
[](https://github.com/APTRS/APTRS/actions/workflows/frontend.yml)
[](https://github.com/APTRS/APTRS/actions/workflows/docker.yml)
[](https://app.codacy.com/gh/Anof-cyber/APTRS/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
[](https://sonarcloud.io/summary/new_code?id=Anof-cyber_APTRS&branch=API)
[](https://sonarcloud.io/summary/new_code?id=Anof-cyber_APTRS)
[](https://sonarcloud.io/summary/new_code?id=Anof-cyber_APTRS)
[](https://github.com/Anof-cyber/APTRS/actions/workflows/codeql.yml)
[](https://twitter.com/Ano_F_)

## Documentation
> [!Note]
> Please ensure to review the Installation and Deployment Guide from the documentation.
[<img src="https://i.ibb.co/qnssqbJ/doc.png" alt="APTRS Documentation" width="220" height="45">](https://aptrs.com) [<img src="https://run.pstmn.io/button.svg" alt="Run In Postman" width="220" height="45">](https://www.postman.com/aptrs-api)
- Try APTRS Live - [https://live.aptrs.com](https://live.aptrs.com)
> [!NOTE]
> Default creds are
[email protected] & I-am-Weak-Password-Please-Change-Me
Quick Installation
> [!Warning]
> Please ensure to review the documentation for Security Configuration for ENV and other Installation methods.
```bash
git clone https://github.com/APTRS/APTRS
cd APTRS
cp env.docker .env
nano .env
docker-compose up
```
## Features
- Manage Vulnerabilities
- Custom Report Template in Docx or HTML/CSS
- Manage All Projects in one place
- Maintain the Vulnerability Database
- Easily Generate PDF, DOCX and Excel Report
- Easily Customize PDF and DOCX Report Template
- Dynamically add POC, Description and Recommendations
- Manage Customers and Companies
- Manage Project Status, Schedules and Retest
## Support APTRS
If you've found APTRS helpful and valuable, please consider supporting the project. Your donations are crucial in helping maintain and improve APTRS, which is primarily maintained by a single dedicated developer. Your support will ensure the continued development of new features, timely updates, and the overall sustainability of the project. Every contribution, no matter how small, makes a significant difference and is greatly appreciated. Thank you for your generosity and support!
<div style="display: flex; flex-direction: column; align-items: center; border: 1px solid #000; padding: 10px; width: 350px;"><b>Bitcoin</b>
<img src="https://raw.githubusercontent.com/APTRS/APTRS-Changelog/refs/heads/main/images/BTC.png" alt="BTC Wallet QR Code" width="200" height="200">
<p style="margin-top: 10px; text-align: center;">bc1qusxngf2w5gl2g8hw82ggct59227k4963f9fwhm</p>
</div>
<br/><br/>
<a href="https://github.com/sponsors/APTRS"><img src="https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86" alt="Sponsor APTRS" width="230" height="50"></a>
<br/><br/>
## Sponsor
<p>This project is supported by:</p>
<p>
<a href="https://m.do.co/c/daa899c901f2">
<img src="https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/SVG/DO_Logo_horizontal_blue.svg" width="201px">
</a>
</p>
## Security
If you discover any security vulnerabilities in this open-source project, please responsibly disclose it by referring to our [Security Policy](https://github.com/Anof-cyber/APTRS/security/policy). We appreciate and value your efforts to improve the security of this project.
## Contributors ✨
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tbody>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://souravkalal.tech/"><img src="https://avatars.githubusercontent.com/u/39705906?v=4?s=100" width="100px;" alt="Sourav Kalal"/><br /><sub><b>Sourav Kalal</b></sub></a><br /><a href="#maintenance-anof-cyber" title="Maintenance">🚧</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/djscruggs"><img src="https://avatars.githubusercontent.com/u/41671?v=4?s=100" width="100px;" alt="DJ Scruggs"/><br /><sub><b>DJ Scruggs</b></sub></a><br /><a href="https://github.com/APTRS/APTRS/commits?author=djscruggs" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/noraj"><img src="https://avatars.githubusercontent.com/u/16578570?v=4?s=100" width="100px;" alt="Alexandre ZANNI"/><br /><sub><b>Alexandre ZANNI</b></sub></a><br /><a href="https://github.com/APTRS/APTRS/commits?author=noraj" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/0xdeviner"><img src="https://avatars.githubusercontent.com/u/61959752?v=4?s=100" width="100px;" alt="Hitesh Patra"/><br /><sub><b>Hitesh Patra</b></sub></a><br /><a href="https://github.com/APTRS/APTRS/commits?author=0xdeviner" title="Code">💻</a></td>
</tr>
</tbody>
</table>
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
## Authors
- [Sourav Kalal](https://twitter.com/Ano_F_)
", Assign "at most 3 tags" to the expected json: {"id":"13442","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"