2026-06-11 12:55:22 -04:00
# My Portfolio Site
This repository now follows the requested multi-service architecture with a React frontend, Go CRUD service, Python API, Rust engine, and automated test pipeline.
## Repository structure
```text
2026-06-13 21:41:03 -04:00
my-personal-site/
├── src/ # React application
│ ├── assets/
│ ├── components/
│ │ ├── Footer.js
│ │ ├── Jumbotron.js
│ │ ├── Layout.js
│ │ ├── Navigation.js
│ │ └── ProjectCard.js
│ ├── hooks/
│ ├── pages/
│ │ ├── Contact.js
│ │ ├── Home.js
│ │ ├── Projects.js
│ │ └── Resume.js
│ ├── App.js
│ ├── App.css
│ ├── index.js
│ └── index.css
├── functions/
│ ├── go/ # Go microservices
│ │ ├── api-gateway/
│ │ ├── user-service/
│ │ ├── project-service/
│ │ └── shared/
│ ├── rust/ # Rust services
│ │ ├── auth-service/
│ │ ├── file-service/
│ │ └── shared/
│ └── python/ # Python services
│ ├── ml-service/
│ ├── data-processing/
│ └── analytics-service/
├── dist/ # Builds of all services
│ ├── go/
│ ├── rust/
│ └── python/
├── amplify/ # amplify
│ ├── data/
│ ├── functions/
│ └── backend.ts
├── docs/ # Documentation
├── tests/ # Integration and unit tests
│ ├── frontend/
│ ├── functions/
│ └── integration/
├── .github/ # GitHub Actions workflows
│ └── workflows/
│ │ ├── codeql-analysis.yml
│ │ ├── frontend-deploy.yml
│ │ ├── go-backend-deploy.yml
│ │ ├── python-backend-deploy.yml
│ │ ├── rust-backend-deploy.yml
│ │ └── test-pipeline-deploy.yml
│ └── dependabot.yml
├── README.md
├── .gitignore
├── amplify.yml
├── package.json
├── package-lock.json
└── Makefile
2026-06-11 12:55:22 -04:00
```
2026-06-03 21:49:46 -04:00
2026-06-11 12:55:22 -04:00
## Development
2026-06-03 21:49:46 -04:00
2026-06-13 21:41:03 -04:00
This project uses a multi-language architecture with Go, Rust, and Python backend services and a React frontend. The build system is managed through a comprehensive Makefile that handles cross-platform development.
Prerequisites
Required Tools
2026-06-03 21:49:46 -04:00
2026-06-13 21:41:03 -04:00
Node.js (v16+) and npm - For React frontend and Amplify CLI
Git - Version control
2026-06-03 21:49:46 -04:00
2026-06-13 21:41:03 -04:00
### Optional Tools (for backend development)
2020-04-19 18:45:51 -04:00
2026-06-13 21:41:03 -04:00
Go (v1.19+) - For Go-based Lambda functions
Rust and Cargo - For Rust-based Lambda functions
Python (v3.8+) and pip - For Python-based Lambda functions
2020-04-19 18:45:51 -04:00
2026-06-13 21:41:03 -04:00
## Quick Start
1. Check Dependencies
2020-04-19 18:45:51 -04:00
2026-06-13 21:41:03 -04:00
`make check-deps`
2020-04-19 18:45:51 -04:00
2026-06-13 21:41:03 -04:00
This will verify which tools are installed and show warnings for missing optional dependencies.
2. Install Dependencies
2020-04-19 18:45:51 -04:00
2026-06-13 21:41:03 -04:00
`make install-deps`
Installs all available dependencies for detected languages and tools.
3. Start Development Environment
`make dev`
This starts both the Amplify sandbox and React development server.
## Development Workflow
### Building Functions
Build all available functions: `make build-all`
Build specific language functions:
`make build-go # Build Go Lambda functions`
`make build-rust # Build Rust Lambda functions`
`make build-python # Build Python Lambda functions`
### Testing
Run all tests: `make test`
Runs frontend tests and any available backend tests for installed languages.
### Cleaning
Clean build artifacts: `make clean`
Removes all build artifacts, compiled binaries, and temporary files.
## Platform-Specific Setup
Installing Python
macOS (with Homebrew): make install-python-mac
Ubuntu/Debian: make install-python-ubuntu
CentOS/RHEL: make install-python-centos
Windows: make install-python-windows
Project Structure
2020-04-19 18:45:51 -04:00
2026-06-13 21:41:03 -04:00
The Makefile automatically detects functions in these locations:
2020-04-19 18:45:51 -04:00
2026-06-13 21:41:03 -04:00
Go functions: `functions/go/*/main.go`
Rust functions: `functions/rust/*/Cargo.toml`
Python functions: `functions/python/*/lambda_function.py`
## Build Outputs
All compiled functions are packaged as ZIP files in the dist/
directory:
```text
dist/
├── go/
│ └── function-name.zip
├── rust/
│ └── function-name.zip
└── python/
└── function-name.zip
2026-06-11 12:55:22 -04:00
```
2020-04-19 18:45:51 -04:00
2026-06-13 21:41:03 -04:00
## Development Features
### Cross-Platform Support
Automatically detects available tools and skips unavailable languages
Platform-specific Python installation helpers
Graceful handling of missing dependencies
## Optimized Builds
Go: Builds for Linux ARM64 (Lambda-optimized)
Rust: Uses `cargo-lambda` when available, falls back to standard cargo
Python: Includes dependency packaging with pip
## Smart Dependency Management
Automatically runs `go mod tidy` for Go modules
Installs `cargo-lambda` for optimized Rust builds
Handles Python virtual environments and requirements.txt
2026-06-11 12:55:22 -04:00
## Deployment
2020-04-19 18:45:51 -04:00
2026-06-13 21:41:03 -04:00
Deploy to Amplify: `make deploy`
Builds all functions and deploys using Amplify pipeline.
## Available Make Targets
Target Description
`help` Show all available targets
`check-deps` Verify required tools are installed
`install-deps` Install all dependencies
`build-all` Build all available functions
`build-go` Build Go functions only
`build-rust` Build Rust functions only
`build-python` Build Python functions only
`clean` Remove build artifacts
`test` Run all tests
`dev` Start development environment
`deploy` Deploy to Amplify
## Troubleshooting
### Common Issues
"Command not found" errors:
Run make `check-deps` to see which tools need installation
Install missing tools using your system's package manager
Build failures:
Ensure you're in the project root directory
Run `make clean` then try building again
Check that function directories contain the expected entry files
Python dependency issues:
Ensure pip is installed: `python -m ensurepip --upgrade`
Try using pip3 explicitly if pip fails
## Getting Help
Run `make help` to see all available commands and their descriptions.