This project is a showcase website developed in HTML, CSS, and JavaScript that presents my public GitHub projects and the skills I have acquired.
This project consists of two parts:
- Part 1 : a JavaScript script for local use, which retrieves a user's list of GitHub repositories and stores their information in a JSON file.
- Part 2 : a web interface that uses this JSON file to display project details and allow users to view each project's README file.
- Retrieves a user's GitHub repositories via the GitHub API.
- Retrieves detailed information about each deposit.
- Updates a local JSON file, asking the user if they want to replace existing projects (to preserve any manual changes).
- Allows you to associate categories with projects.
- Clone this repository :
git clone https://github.com/your_username/your-repo.git
cd your-repo- Install dependencies. Node allows you to run a JavaScript script directly from a command prompt.
node install-
Edit & run the JavaScript script Edit the script
update_projects_example.js/to enter your GitHub token and username. -
Run the script
cd path-to-script
node update_projects.js- Follow the instructions in the console to:
- Choose to replace or ignore existing projects.
- Associate categories with projects.
- The
projects.json/file will be updated in thejson//folder.
- Displays projects with name, description, and primary language.
- Direct link to each project on GitHub.
- Displays each project's README in a modal window without reloading the page.
- Simple navigation with navbar and footer.
- Clone or download the repository.
- Open
index.htmllocally via a server (e.g. VSCode's Live Server extension) to avoid CORS errors. - Deploy to GitHub Pages or any other static site host.
- The GitHub API limits the number of requests per hour.
- To avoid 403 errors (limit exceeded), it is advisable to use a GitHub token in API calls.
- Never expose a private token on a public website without a secure backend.
That's why I divided the site into two parts:
- a local part that uses the GitHub token to retrieve and update data,
- an online part that only uses the generated JSON file, without exposing the token.
- HTML5, CSS3 (Flexbox, transitions)
- JavaScript (fetch API, manipulation DOM)
- API REST GitHub (https://docs.github.com/en/rest)
- Project pagination.
- Local caching (localStorage).
- Search bar by project name.
This project is licensed under the MIT licence — see the LICENSE file for more details.
If you have any questions or suggestions, please contact me via mon profil GitHub.