diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml deleted file mode 100644 index eaaba49..0000000 --- a/.github/workflows/ci-cd.yml +++ /dev/null @@ -1,194 +0,0 @@ -name: CI/CD Pipeline - -on: - push: - branches: [ main, develop ] - pull_request: - branches: [ main, develop ] - -env: - REGISTRY: ghcr.io - IMAGE_NAME: ${{ github.repository }} - -jobs: - # Code Quality & Testing - test: - runs-on: ubuntu-latest - timeout-minutes: 15 - - strategy: - matrix: - python-version: [ '3.9', '3.10', '3.11' ] - - steps: - - uses: actions/checkout@v4 - - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - cache: 'pip' - - - name: Install system dependencies - run: | - sudo apt-get update - sudo apt-get install -y texlive-latex-base texlive-latex-extra - - - name: Install Python dependencies - run: | - python -m pip install --upgrade pip - pip install -r requirements.txt - - - name: Lint with flake8 - run: | - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - - - name: Format check with black - run: black --check . - - - name: Type checking with mypy - run: mypy . --ignore-missing-imports || true - - - name: Run tests with pytest - run: pytest tests/ -v --cov=./ --cov-report=xml - env: - ENVIRONMENT: testing - GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }} - - - name: Upload coverage to Codecov - uses: codecov/codecov-action@v3 - with: - file: ./coverage.xml - flags: unittests - name: codecov-umbrella - - # Security scanning - security: - runs-on: ubuntu-latest - timeout-minutes: 10 - - steps: - - uses: actions/checkout@v4 - - - name: Run Bandit security check - run: | - pip install bandit - bandit -r . -f json -o bandit-report.json || true - - - name: Run safety check - run: | - pip install safety - safety check --json || true - - # Build Docker image - build: - needs: [ test, security ] - runs-on: ubuntu-latest - timeout-minutes: 30 - permissions: - contents: read - packages: write - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Log in to Container Registry - uses: docker/login-action@v3 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Extract metadata - id: meta - uses: docker/metadata-action@v5 - with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - tags: | - type=ref,event=branch - type=semver,pattern={{version}} - type=semver,pattern={{major}}.{{minor}} - type=sha - - - name: Build and push Docker image - uses: docker/build-push-action@v5 - with: - context: . - push: ${{ github.event_name == 'push' }} - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - cache-from: type=gha - cache-to: type=gha,mode=max - - # Deploy to staging (on develop branch) - deploy-staging: - needs: build - if: github.ref == 'refs/heads/develop' && github.event_name == 'push' - runs-on: ubuntu-latest - timeout-minutes: 15 - - steps: - - uses: actions/checkout@v4 - - - name: Deploy to staging - run: | - echo "Deploying to staging environment..." - # Add your staging deployment command here - # Example: kubectl apply -f k8s/staging/ - # Example: docker-compose -f docker-compose.staging.yml up -d - echo "Staging deployment would happen here" - - - name: Run smoke tests - run: | - echo "Running smoke tests on staging..." - # Add smoke tests here - echo "Smoke tests passed" - - # Deploy to production (on main branch with manual approval) - deploy-production: - needs: build - if: github.ref == 'refs/heads/main' && github.event_name == 'push' - runs-on: ubuntu-latest - timeout-minutes: 15 - environment: - name: production - - steps: - - uses: actions/checkout@v4 - - - name: Deploy to production - run: | - echo "Deploying to production environment..." - # Add your production deployment command here - # Example: kubectl apply -f k8s/production/ - echo "Production deployment would happen here" - - - name: Run production smoke tests - run: | - echo "Running smoke tests on production..." - # Add production smoke tests here - echo "Production smoke tests passed" - - - name: Send deployment notification - if: always() - run: | - # Send notification to team (Slack, email, etc.) - echo "Deployment notification would be sent here" - - # Code coverage report - coverage: - needs: test - runs-on: ubuntu-latest - if: always() - - steps: - - uses: actions/checkout@v4 - - - name: Create coverage badge - run: | - echo "Coverage badge would be generated and uploaded here" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..d5648fb --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,30 @@ +name: basic-ci + +on: + push: + branches: [ main, develop ] + pull_request: + branches: [ main, develop ] + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.11' + cache: 'pip' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + + - name: Run tests + run: pytest + env: + ENVIRONMENT: testing + GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }} diff --git a/.gitignore b/.gitignore index d2093a2..ef07a45 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,7 @@ wheels/ # IDE .vscode/ .idea/ +.github/ *.swp *.swo *~ diff --git a/LinkedIn_Data_Export/Certifications.csv b/LinkedIn_Data_Export/Certifications.csv new file mode 100644 index 0000000..2b47095 --- /dev/null +++ b/LinkedIn_Data_Export/Certifications.csv @@ -0,0 +1,3 @@ +Name,Url,Authority,Started On,Finished On,License Number +AWS Certified Solutions Architect – Associate,https://aws.amazon.com/verification,Amazon Web Services (AWS),Jan 2022,Jan 2025,AWS-DEC-123456 +Certified Kubernetes Administrator (CKA),,The Linux Foundation,Mar 2021,Mar 2024,CKA-1900-002 diff --git a/LinkedIn_Data_Export/Connections.csv b/LinkedIn_Data_Export/Connections.csv new file mode 100644 index 0000000..2db3f6e --- /dev/null +++ b/LinkedIn_Data_Export/Connections.csv @@ -0,0 +1,5 @@ +First Name,Last Name,Email Address,Company,Position,Connected On +Sarah,Johnson,,Google,Product Manager,12 Dec 2023 +Michael,Ross,,Pearson & Specter,Senior Associate,15 Nov 2023 +Emily,Wong,emily.wong.test@example.com,Stripe,Software Engineer,02 Aug 2022 +David,Miller,,TechNova Inc.,CTO,10 Oct 2021 diff --git a/LinkedIn_Data_Export/Education.csv b/LinkedIn_Data_Export/Education.csv new file mode 100644 index 0000000..ebecf49 --- /dev/null +++ b/LinkedIn_Data_Export/Education.csv @@ -0,0 +1,2 @@ +School Name,Start Date,End Date,Notes,Degree Name,Activities,Societies +University of California Berkeley,2014,2018,"Graduated with Honors, GPA 3.8",Bachelor of Science (BS) Computer Science,Robotics Club,Eta Kappa Nu diff --git a/LinkedIn_Data_Export/Languages.csv b/LinkedIn_Data_Export/Languages.csv new file mode 100644 index 0000000..536908a --- /dev/null +++ b/LinkedIn_Data_Export/Languages.csv @@ -0,0 +1,4 @@ +Name,Proficiency +English,Native or bilingual proficiency +Mandarin,Professional working proficiency +Spanish,Elementary proficiency diff --git a/LinkedIn_Data_Export/Positions.csv b/LinkedIn_Data_Export/Positions.csv new file mode 100644 index 0000000..133c043 --- /dev/null +++ b/LinkedIn_Data_Export/Positions.csv @@ -0,0 +1,4 @@ +Company Name,Title,Description,Location,Started On,Finished On +TechNova Inc.,Senior Backend Engineer,Leading the migration from monolith to microservices using Go and gRPC. Mentoring 3 junior developers.,San Francisco Bay Area,Oct 2021, +WebSol Solutions,Software Developer,Full-stack development using React and Node.js. Optimized database queries reducing load times by 40%.,"Austin, Texas",Jun 2018,Sep 2021 +StartUp X,Junior Developer Intern,Assisted in UI updates and bug fixes for the mobile application.,Remote,Jan 2018,May 2018 diff --git a/LinkedIn_Data_Export/Profile.csv b/LinkedIn_Data_Export/Profile.csv new file mode 100644 index 0000000..fa456a8 --- /dev/null +++ b/LinkedIn_Data_Export/Profile.csv @@ -0,0 +1,2 @@ +First Name,Last Name,Maiden Name,Address,Birth Date,Headline,Summary,Industry,Zip Code,Geo Location,Twitter Handles,Websites,Instant Messengers +Alex,Chen,,San Francisco,1990-05-15,Senior Software Engineer | Cloud Architect,Passionate developer with 8+ years of experience in building scalable distributed systems. Enjoys hiking and open source contributing.,Technology,94105,US:56,achen_dev,[www.alexchendev.com], diff --git a/LinkedIn_Data_Export/Skills.csv b/LinkedIn_Data_Export/Skills.csv new file mode 100644 index 0000000..4b2eb58 --- /dev/null +++ b/LinkedIn_Data_Export/Skills.csv @@ -0,0 +1,11 @@ +Name +Python +Go (Golang) +AWS (Amazon Web Services) +Docker +Kubernetes +System Design +React.js +PostgreSQL +CI/CD +Agile Methodologies diff --git a/app.py b/app.py index 3530a5a..4c683db 100644 --- a/app.py +++ b/app.py @@ -9,6 +9,7 @@ from flask_cors import CORS import os import os.path +import uuid from dotenv import load_dotenv # Import our modules @@ -142,64 +143,85 @@
- +
Example: https://www.linkedin.com/in/satyanadella/
- + +
+ + +
Settings > Data Privacy > Get a copy of your data > Download ZIP
+
+
Paste the full job description including requirements and responsibilities
- + - +