Skip to content

cerform/project-int

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project-Int README

Project-Int Flask Application

Overview

This is a Flask-based web application designed for uploading, previewing, and searching files in multiple formats like .txt, .pdf, .docx, .pptx, and Jupyter notebooks (.ipynb). The app features content indexing and preview functionality for different file types.

Features

  • File Upload & Indexing: Upload files and index their content.
  • Supported File Types: .txt, .pdf, .docx, .pptx, .ipynb.
  • Search Functionality: Search through indexed files using keywords.
  • File Preview: Preview PowerPoint slides, Jupyter notebooks, PDFs, text files, and images.

File Structure

  • app.py: Main application logic.
  • static/: Contains static assets (e.g., images).
  • templates/: HTML templates for rendering pages.
  • Dockerfile: Docker configuration file for containerizing the app.
  • Jenkinsfile: Jenkins pipeline for automating testing and deployment.
  • k8s/: Kubernetes manifests for deployment and service.

Installation

Docker Setup

  1. Build the Docker image:
    docker build -t project-int-app .
  2. Run the Docker container:
    docker run -p 5000:5000 -v $(pwd)/uploads:/app/uploads project-int-app

Kubernetes Setup

  1. Ensure Minikube or any Kubernetes cluster is running.
  2. Deploy the application:
    kubectl apply -f k8s/deployment.yaml
    kubectl apply -f k8s/service.yaml
  3. Access the application by finding the service URL:
    minikube service project-int-service

CI/CD with Jenkins and ArgoCD

  • Jenkins Pipeline: The Jenkinsfile contains stages to build, test, and deploy the application in Kubernetes.
  • ArgoCD Integration: The app leverages ArgoCD for automated Kubernetes deployments. The image-updater updates app images based on changes in the container registry.

Usage

  1. Upload Files: Use the homepage to upload supported files.
  2. Search Files: Search through indexed files by keywords.
  3. Preview Files: Preview uploaded files directly in the browser.

Branch-Specific Features

  • etcsys_test branch:
    • Kubernetes manifests for deployment.
    • Integration with Jenkins and ArgoCD for automated CI/CD.
    • Enhanced logging and error handling for file operations.

Dependencies

  • Flask
  • python-pptx
  • PyMuPDF (fitz)
  • Mammoth
  • nbformat
  • Docker
  • Kubernetes
  • Jenkins
  • ArgoCD

License

This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •