Automated CV Website with Sphinx and Dropbox Backup

github repo

This repository contains the source and build files for my personal CV website hosted at cv.jnapolitano.io. It is built primarily using HTML and Sphinx documentation tools, with automated deployment and backup scripts.

Features

  • Static HTML generation of personal CV and related documentation
  • Automated build and deployment scripts using Makefile and shell scripts
  • Dropbox backup integration for HTML builds
  • Sphinx-based documentation with support for blog posts, machine learning projects, and data projects
  • TensorFlow machine learning projects integrated as submodules

Tech Stack

  • HTML for the CV website
  • Python 3.5+ for build automation and Dropbox API integration
  • Sphinx documentation generator with extensions such as ablog, myst_nb, sphinx_copybutton
  • TensorFlow for machine learning projects
  • Bash shell scripts for deployment and maintenance

Getting Started

Prerequisites

  • Python 3.5 or higher
  • pip package manager
  • Dropbox SDK for Python (pip install dropbox)
  • GitHub CLI for deployment (ghp-import tool)

Installation

  1. Clone the repository:
git clone https://github.com/justin-napolitano/cv.git
cd cv
  1. Install Python dependencies:
pip install -r requirements.txt
  1. (Optional) Setup Dropbox access token in backup_html.py for backup functionality.

Build and Deploy

  • To build the HTML documentation:
make html
  • To deploy the built HTML to GitHub Pages:
./deploy.sh
  • To backup the HTML build to Dropbox:
python backup_html.py

Project Structure

cv/
β”œβ”€β”€ acp.sh                  # Shell script (purpose unspecified)
β”œβ”€β”€ backup_html.py          # Python script to backup HTML build to Dropbox
β”œβ”€β”€ chtml.sh                # Shell script (purpose unspecified)
β”œβ”€β”€ deploy.sh               # Deployment script to GitHub Pages
β”œβ”€β”€ deployz.sh              # Alternative deployment script
β”œβ”€β”€ doit.sh                 # Shell script (purpose unspecified)
β”œβ”€β”€ install.sh              # Installation script
β”œβ”€β”€ label_list.py           # Python script for reading Sphinx pickle labels
β”œβ”€β”€ latex/                  # LaTeX source files
β”œβ”€β”€ Makefile                # Build automation file
β”œβ”€β”€ pullit.sh               # Git pull script
β”œβ”€β”€ pushit.sh               # Git push script
β”œβ”€β”€ python_build.py         # Python build automation script
β”œβ”€β”€ requirements.txt        # Python dependencies
β”œβ”€β”€ requirements_rocky.txt  # Alternative dependencies
β”œβ”€β”€ requirments.txt         # Possibly duplicate requirements file
β”œβ”€β”€ source/                 # Sphinx documentation source
β”‚   β”œβ”€β”€ _toc.yml            # Table of contents
β”‚   β”œβ”€β”€ conf.py             # Sphinx configuration
β”‚   β”œβ”€β”€ index.md            # Main documentation index
β”‚   β”œβ”€β”€ parts/              # Documentation parts (ml-ai, data, bibliography, etc.)
β”‚   └── ...
└── uninstall.sh            # Uninstall script

Future Work / Roadmap

  • Clean up and consolidate shell scripts for clarity and purpose
  • Improve configuration management and environment variable handling
  • Enhance documentation structure and add more detailed usage guides
  • Expand Dropbox backup functionality with error handling and logging
  • Modularize machine learning projects for easier reuse
  • Automate testing and continuous integration for builds and deployments

Note: Some scripts and files are present without explicit documentation. Assumptions were made based on filenames and partial code snippets.

hjkl / arrows Β· / search Β· :family Β· :tag Β· :datefrom Β· :dateto Β· ~/entries/slug Β· Ctrl+N/Ctrl+P for suggestions Β· Ctrl+C/Ctrl+G to cancel
entries 201/201 Β· entry -/-
:readyentries 201/201 Β· entry -/-