Skip to content

DerekCorniello/pip-req-valid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go Vue.js Vite CSS3 Docker AWS

ReqInspect

ReqInspect is an open-source application designed to simplify and streamline requirements.txt inspection and debugging. It provides a full-stack solution with a Vue.js frontend and a Go backend, offering a responsive and powerful interface for inspecting python requirements.txt file.

Note: This application has been migrated from AWS infrastructure to run locally via Docker. The public URLs (reqinspect.com) are no longer reachable. Use the Docker setup below to run it on your local machine.

Local Development

To run ReqInspect locally using Docker:

  1. Ensure Docker and Docker Compose are installed.
  2. Clone the repository and navigate to the project directory.
  3. Build the custom Python image: sudo docker build -f python-with-git.Dockerfile -t my-python-git .
  4. Start the services: sudo docker compose up --build
  5. Access the application at http://localhost:5173

The setup includes:

  • Vue.js frontend served via Nginx on port 5173
  • Go backend API on port 8080
  • Docker-in-Docker support for pip install testing

Previous Infrastructure (AWS - No Longer Active)

The ReqInspect application was previously deployed on AWS with the following stack:

IAM     EC2     Elastic Load Balancer     Route53     Amplify     Cloudwatch

Frontend

  • Framework: Built with Vue.js for a modern, dynamic, and responsive user interface.
  • Hosting: Deployed on AWS Amplify, taking advantage of its managed hosting services for SPAs (Single Page Applications).
    • CDN-backed hosting for fast and reliable global delivery.
    • HTTPS enabled by default for secure communication.
    • Automatic builds and deployments on commits to the main branch.
    • Automatic Domain Resolution linked with Route53

Backend

  • Framework: Powered by a Go API that efficiently handles HTTP requests.
  • Hosting: Deployed on an AWS EC2 instance to ensure flexibility and scalability.
    • Rate Limited API to mitigate attacks and spamming of the backend
    • Token-based authentication implemented for enhanced security:
      • Clients must obtain an authentication token before sending requests.
      • Tokens ensure secure file uploads and authenticated API interactions.

Networking & Security

  • Domain: The application was previously accessible through reqinspect.com and www.reqinspect.com. These URLs are no longer active.
  • Load Balancing:
    • An Application Load Balancer (ALB) distributes incoming requests to the backend instances.
    • HTTPS termination occurs at the ALB to ensure end-to-end encryption.
  • Authentication & Authorization:
    • The backend enforces token-based authentication for all API endpoints.
    • Expired or invalid tokens are rejected to maintain API security.
  • Rate Limiting:
    • The backend limits the amount of pings per hour in order to mitigate attacks

Monitoring & Logging

  • Logging: Both the frontend and backend are integrated with AWS CloudWatch for centralized log collection and analysis.
  • Metrics: CloudWatch monitors system performance, traffic patterns, and error rates.
  • Alerting: Alarms notify the administrator of unusual activities or potential system failures.

Scalability

  • Frontend: AWS Amplify ensures automatic scaling for traffic surges without manual intervention.
  • Backend: The EC2 instance is provisioned with auto-scaling rules, ensuring optimal performance even under heavy load.

Contributing

We welcome contributions! If you'd like to suggest a feature, report a bug, or make a pull request, please follow the contribution guidelines in this repository.


License:

Licensed under Apache 2.0 License

Connect with Me!

LinkedIn GitHub X

About

This is a project to validate your pip requirements.txt file

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors