Resume site with live content from Gitea
Replaces the static portfolio with a resume site that reads /data/resume.json: the text comes from data/resume.json in this repo, and the projects are the public Gitea repos tagged `resume`. Merges in the content of the hh.ru resume (backend/DevOps skills, experience, languages) without personal details. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,28 +1,31 @@
|
||||
# Emil Shanayev — Portfolio
|
||||
# Emil Shanayev — resume site
|
||||
|
||||
Updated static portfolio based on the original `Emil_Shanayev_Resume` repository.
|
||||
Live at **https://shanaty.ru/resume/**. A static Next.js site whose content is loaded live from Gitea:
|
||||
|
||||
## Local development
|
||||
- **Text** (name, bio, skills, experience, education, contacts, …) comes from [`data/resume.json`](data/resume.json) in this repo.
|
||||
- **Projects** are the public repos on Gitea (`git.shanaty.ru/Emil_Shanaty`) that carry the topic **`resume`**. Tag a repo and it appears within about a minute; remove the topic and it disappears.
|
||||
- Optional `projectNotes` in `data/resume.json` (keyed by repo name) enrich a project with a title, kind, longer description, highlights, tech tags, extra links and a `rank` (lower ranks first; the rest are newest first). Without a note a project shows its Gitea description, language and topics.
|
||||
|
||||
## How it works
|
||||
|
||||
A systemd timer on the server (`resume_sync.py`, in the `auto` repo) rebuilds `https://shanaty.ru/data/resume.json` every minute from the `main` branch of this repo plus the topic search. The page fetches that file on load and falls back to the copy bundled at build time if it is unreachable. A broken `data/resume.json` (invalid JSON, missing fields, non-http links) is rejected and the previous published data stays.
|
||||
|
||||
To update content: edit `data/resume.json`, commit, and **push to Gitea** (`git push gitea main`). No rebuild or deploy is needed.
|
||||
|
||||
## Development
|
||||
|
||||
```bash
|
||||
npm install
|
||||
npm run dev
|
||||
npm run dev # http://localhost:3000, data from the public https://shanaty.ru/data/resume.json
|
||||
npm run build # static export in out/
|
||||
```
|
||||
|
||||
Open `http://localhost:3000`.
|
||||
`BASE_PATH` sets the URL prefix (default `/Emil_Shanayev_Resume`, for GitHub Pages) and `NEXT_PUBLIC_DATA_URL` the data URL.
|
||||
|
||||
## Production build
|
||||
## Deploy
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
```
|
||||
`./deploy-shanaty.sh` builds and publishes the site to shanaty.ru (needs the ssh key `~/.ssh/MyGitea`). Only needed after changing code or styles.
|
||||
|
||||
The static export is written to `out/`.
|
||||
## Not published on purpose
|
||||
|
||||
## GitHub Pages
|
||||
|
||||
The project is preconfigured for:
|
||||
|
||||
`https://emil28092005.github.io/Emil_Shanayev_Resume/`
|
||||
|
||||
Push the project to the `main` branch, then select **Settings → Pages → Source → GitHub Actions**. The included workflow builds and deploys the static export automatically.
|
||||
The official resume on hh.ru holds more personal details (phone, date of birth, salary expectations). This site only carries the professional content.
|
||||
|
||||
Reference in New Issue
Block a user