Pet Projects Timeline is a web application that helps you track and showcase your pet projects over time. It displays a timeline of your personal projects, allowing you to filter and view details of each project. The app is built with SvelteKit and hosted on GitHub Pages.
- Timeline of Projects: View a chronological list of your pet projects.
- Filters: Filter projects by topic.
- GitHub Integration: Projects are fetched directly from GitHub repositories.
- Responsive Design: Works well on both desktop and mobile devices.
- Static Hosting: Deployed using GitHub Pages.
Check out the live demo: Pet Projects Timeline
To run the project locally, follow these steps:
- Clone the repository:
git clone https://github.com/lyrklif/pet-projects-timeline.git
- Install dependencies:
npm install
- Create a
.env
file in the root directory based on the.env.example
file:
cp .env.example .env
Fill in the following values in the .env
file:
VITE_USER_NAME=<Your GitHub username>
VITE_GITHUB_LINK=<Your GitHub profile link>
VITE_API=<GitHub API URL, e.g., https://api.github.com>
VITE_EXCLUDED_REPOSITORIES=<Comma-separated list of repository names to exclude>
- Run the development server:
npm run dev
- Open your browser and go to
http://localhost:5173
.
This project is set up for deployment to GitHub Pages using the @sveltejs/adapter-static
. To deploy it, simply run:
npm run deploy
Make sure that the base path is set correctly in the svelte.config.js
file:
paths: {
base: '<repository-name>'
}
And static/404.html
window.location.href = '/<repository-name>/#' + pathname;
- Framework: SvelteKit
- Hosting: GitHub Pages
- CSS Framework: Flowbite-Svelte
- Data Fetching: Svelte Query
- Markdown Parsing: Marked.js
The project requires the following environment variables to be set in a .env
file:
VITE_USER_NAME
- Your GitHub username.VITE_GITHUB_LINK
- The link to your GitHub profile.VITE_API
- The GitHub API URL, e.g.,https://api.github.com
.VITE_EXCLUDED_REPOSITORIES
- A comma-separated string of repository names that should be excluded from the timeline (e.g.,repo1,repo2,repo3
).
An example of these variables can be found in the .env.example
file.
Contributions are welcome! If you have suggestions for improving the project or want to report an issue, feel free to open an issue or submit a pull request.