11# Terminal Portfolio
22
3- A terminal-style portfolio website template that loads your personal data from a GitHub Gist at build time, keeping your information private while maintaining a clean, reusable template.
3+ A terminal-style portfolio website that loads personal data from a GitHub Gist, providing a clean separation between the UI template and your content.
4+
5+ ## How It Works
6+
7+ 1 . The UI is a simple static website that mimics a terminal interface
8+ 2 . Your personal data (projects, skills, etc.) lives in a GitHub Gist
9+ 3 . The site loads your data from the Gist at runtime
10+ 4 . Update your Gist to change your portfolio content
411
512## Quick Start
613
7- 1 . Use this template :
14+ 1 . Fork this repository :
815 ``` bash
916 git clone https://github.com/nirabo/nirabo.github.io.git
1017 cd nirabo.github.io
11- npm install
1218 ```
1319
14202 . Create your configuration:
@@ -18,109 +24,74 @@ A terminal-style portfolio website template that loads your personal data from a
1824 - Make sure to select "JSON" as the file type
1925 - Save the Gist and copy its "Raw" URL
2026
21- 3 . Set up configuration:
22- ``` bash
23- cp .env.example .env
24- ```
25- Edit .env and set your Gist URL:
26- ```
27- PORTFOLIO_CONFIG_URL=your-gist-raw-url
28- ```
27+ 3 . Update configuration:
28+ - Edit ` config.js ` to point to your Gist URL
2929
30- 4 . Build and deploy:
31- ``` bash
32- npm run build
33- ```
30+ 4 . Deploy:
3431 - Rename your repository to ` yourusername.github.io `
3532 - Push to GitHub
3633 - Your site will be available at ` https://yourusername.github.io `
3734
38- ## Development
39-
40- 1 . Start local server:
41- ``` bash
42- npm start
43- ```
44- This will serve the site at http://localhost:8080
35+ ## Available Commands
4536
46- 2 . Making changes:
47- - Update your Gist with new information
48- - Run ` npm run build ` to update the configuration
49- - Test locally before deploying
37+ The terminal supports these commands:
38+ - ` help ` : List all commands
39+ - ` about ` : Display personal information
40+ - ` projects ` : List all projects
41+ - ` project [name] ` : Show details of a specific project
42+ - ` contact ` : Display contact information
43+ - ` skills ` : List technical skills
44+ - ` clear ` : Clear the terminal
45+ - ` ls ` : List available sections
5046
5147## Configuration Structure
5248
53- The ` config.template.js ` shows the expected structure. Here's what to customize:
54- - Update your name, role, and bio in the ` about ` section
55- - Add your contact information
56- - List your skills
57- - Add your projects with descriptions and links
58- - Customize available commands
59- - (Optional) Add your custom ASCII art
60-
61- Your configuration file (whether local, external, or template) should follow this structure:
49+ Your Gist should follow this structure:
50+ ``` javascript
51+ {
52+ " about" : {
53+ " name" : " Your Name" ,
54+ " role" : " Your Role" ,
55+ " bio" : " Your Bio" ,
56+ " skills" : [" Skill 1" , " Skill 2" ]
57+ },
58+ " contact" : {
59+ 60+ " github" : " github.com/yourusername"
61+ },
62+ " projects" : [
63+ {
64+ " name" : " Project Name" ,
65+ " description" : " Project Description" ,
66+ " technologies" : [" Tech1" , " Tech2" ],
67+ " period" : " 2023-2024"
68+ }
69+ ]
70+ }
71+ ```
6272
6373## Local Development
6474
65- Since the project uses ES modules, you'll need to serve it through a local server. You can use any of these methods :
75+ Since the project uses ES modules, you'll need to serve it through a local server:
6676
67- - Python 3:
6877``` bash
78+ # Using Python 3
6979python -m http.server
70- ```
7180
72- - Node.js (with ` http-server ` ):
73- ``` bash
81+ # Or using Node.js
7482npx http-server
7583```
7684
7785Then open ` http://localhost:8000 ` in your browser.
7886
79- ## Available Commands
80-
81- The terminal supports these default commands:
82- - ` help ` : List all available commands
83- - ` about ` : Display personal information
84- - ` projects ` : List all projects
85- - ` project [name] ` : Show details of a specific project
86- - ` contact ` : Display contact information
87- - ` skills ` : List technical skills
88- - ` clear ` : Clear the terminal
89- - ` ls ` : List available sections
90-
9187## Customization
9288
93- ### Adding New Commands
94-
95- 1 . Add the command to the ` commands.help ` section in your ` config.js `
96- 2 . Add the command handler in ` script.js `
97-
98- ### Styling
99-
10089Modify ` style.css ` to customize the terminal's appearance:
10190- Colors
10291- Font family
10392- Terminal dimensions
10493- Prompt style
10594
106- ## Deployment
107-
108- The site is ready for GitHub Pages deployment. Just push your changes to the main branch:
109-
110- ``` bash
111- git add .
112- git commit -m " Update site configuration"
113- git push origin main
114- ```
115-
116- Your site will be available at ` https://yourusername.github.io `
117-
118- ## Privacy
119-
120- - Your personal data in ` config.js ` is kept private and not tracked by git
121- - The repository only contains the template and structure
122- - Each user can maintain their own private configuration
123-
12495## License
12596
12697MIT License - Feel free to use this template for your own portfolio!
0 commit comments