diff --git a/public/generator-1.png b/public/generator-1.png
index d175782..fa91e1c 100644
Binary files a/public/generator-1.png and b/public/generator-1.png differ
diff --git a/public/pojazdownik-1.png b/public/pojazdownik-1.png
index d2c1280..3ca5408 100644
Binary files a/public/pojazdownik-1.png and b/public/pojazdownik-1.png differ
diff --git a/public/pojazdownik-banner.png b/public/pojazdownik-banner.png
new file mode 100644
index 0000000..b4cdef3
Binary files /dev/null and b/public/pojazdownik-banner.png differ
diff --git a/public/pragotron-1.png b/public/pragotron-1.png
new file mode 100644
index 0000000..66c68bf
Binary files /dev/null and b/public/pragotron-1.png differ
diff --git a/public/srjp-1.png b/public/srjp-1.png
new file mode 100644
index 0000000..fc1d7d0
Binary files /dev/null and b/public/srjp-1.png differ
diff --git a/public/srjp-logo.svg b/public/srjp-logo.svg
new file mode 100644
index 0000000..93a1f0a
--- /dev/null
+++ b/public/srjp-logo.svg
@@ -0,0 +1,5 @@
+
diff --git a/public/td2-discord-presence-1.png b/public/td2-discord-presence-1.png
new file mode 100644
index 0000000..64335f1
Binary files /dev/null and b/public/td2-discord-presence-1.png differ
diff --git a/public/td2-discord-presence-logo.png b/public/td2-discord-presence-logo.png
new file mode 100644
index 0000000..a84f577
Binary files /dev/null and b/public/td2-discord-presence-logo.png differ
diff --git a/src/App.tsx b/src/App.tsx
index 86e8693..35b8dc9 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -6,13 +6,12 @@ import LandingSection from './sections/LandingSection';
import './i18n';
import ProjectsSection from './sections/ProjectsSection';
import AboutSection from './sections/AboutSection';
-import AnimatedBg from './components/AnimatedBg';
function App() {
return (
<>
-
+ {/* */}
diff --git a/src/components/styles/Projects.styled.ts b/src/components/styles/Projects.styled.ts
index d5c3207..954f498 100644
--- a/src/components/styles/Projects.styled.ts
+++ b/src/components/styles/Projects.styled.ts
@@ -62,14 +62,15 @@ export const StyledProjects = styled.section`
.project-title {
display: flex;
- gap: 0.5em;
+ gap: 0.4em;
h2 {
display: inline;
}
img.project-title-icon {
- max-width: 2em;
+ width: 2em;
+ height: 2em;
}
}
diff --git a/src/locales/en.json b/src/locales/en.json
index 57b2d79..09b756c 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -27,10 +27,8 @@
"projects": {
"title-1": "MY",
"title-2": "PROJECTS",
-
"showcase-title": "SHOWCASE - MAJOR PROJECTS",
"other-projects-title": "OTHER PROJECTS",
-
"source-link": "SOURCE",
"docs-link": "DOCS",
"live-app-link": "LIVE APP",
@@ -46,6 +44,14 @@
"title": "GeneraTOR",
"description": "The last of the \"Holy Trinity\" of applications created for the TD2 simulator. It's a graphical interface of so-called \"written orders\" (which are used in railway traffic to conduct trains in case of emergency). The app is fully interactive and beginner-friendly. It's available in native (Polish) language only due to the nature of the written orders which are exclusively used in Polish railway system."
},
+ "pragotron": {
+ "title": "Pragotron TD2",
+ "description": "A simple simulator of Pragotron (the colloquial name for an old Czechoslovakian station departure board) displaying active schedules for a given scenario in the Train Driver 2 simulator."
+ },
+ "srjp": {
+ "title": "Rozkładownik - SRJP",
+ "description": "An online tool to generate printable timetables of user's train relation for Train Driver 2 simulator."
+ },
"stacjownik-manager": {
"title": "Stacjownik Station Manager",
"description": "An additional tool made for people who work with Stacjownik and update it with the freshest data coming from the simulator which isn't automatically scraped, mainly new sceneries (maps available for the community). It's connected with dedicated API where all the changes are processed and updated. The manager is protected with a simple authentication system that prevents unauthorized people from accessing and using the site. Available entirely in Polish for practical reasons."
@@ -54,6 +60,10 @@
"title": "Stacjownik Backend & API Services",
"description": "The backend services for Stacjownik site. Here I compute all data which is further sent to the app. Aside from the API, it's also used for storing history data about users which can be later browsed in the \"Journal\" tab."
},
+ "td2-discord-presence-ui": {
+ "title": "TD2 Discord Presence UI",
+ "description": "A standalone desktop application displaying current in-game user info on Discord for Train Driver 2 simulator."
+ },
"stacjobot": {
"title": "Stacjobot - Discord bot",
"description": ""
@@ -63,4 +73,4 @@
"description": ""
}
}
-}
+}
\ No newline at end of file
diff --git a/src/locales/pl.json b/src/locales/pl.json
index 7cfc65a..cc9e5ab 100644
--- a/src/locales/pl.json
+++ b/src/locales/pl.json
@@ -46,6 +46,14 @@
"title": "GeneraTOR",
"description": "Strona z przygotowaną reprezentacją tzw. rozkazów pisemnych, które stanowią integralną część prowadzenia ruchu kolejowego. Za pomocą tej aplikacji można w wygodny i szybki sposób przygotować rozkaz dla gracza w symulatorze Train Driver 2, a następnie przekazać go za pomocą czatu. Narzędzie jest zaprojektowane tak, aby było jak najbardziej intuicyjne i dla początkujących. Jest dostępne tylko w języku polskim, jako że rozkazy pisemne mogą być podawane wyłącznie w tym języku."
},
+ "pragotron": {
+ "title": "Pragotron TD2",
+ "description": "A simple simulator of Pragotron (the colloquial name for an old Czechoslovakian station departure board) displaying active schedules for a given scenario in the Train Driver 2 simulator."
+ },
+ "srjp": {
+ "title": "Rozkładownik - SRJP",
+ "description": "An online tool to generate printable timetables of user's train relation for Train Driver 2 simulator."
+ },
"stacjownik-manager": {
"title": "Stacjownik Station Manager",
"description": "Dodatkowe narzędzie stworzone dla osób, które pomagają w aktualizacjach Stacjownika. Menedżer jest połączony z dedykowanym API i zabezpieczony przed nieautoryzowanym wejściem. Z powodów praktycznych, aplikacja jest tylko w języku polskim."
@@ -54,8 +62,12 @@
"title": "Usługi backendowe Stacjownika",
"description": "Główny serwer Stacjownika. Tutaj znajduje się serce przetwarzania informacji i wystawiania ich za pomocą API dla pozostałych aplikacji stworzonych dla symulatora Train Driver 2. Serwer operuje na Node.js, stworzony we frameworku Nest.js oraz z bazą danych PostgreSQL. Procesami serwerowymi zarządza PM2 na dedykowanym serwerze VPS z systemem Ubuntu."
},
+ "td2-discord-presence-ui": {
+ "title": "TD2 Discord Presence UI",
+ "description": "A standalone desktop application displaying current in-game user info on Discord for Train Driver 2 simulator."
+ },
"stacjobot": {
- "title": "Stacjobot - bot Discord",
+ "title": "Stacjobot",
"description": "Bot dla oficjalnego serwera Discord Stacjownika, za pomocą którego można wyszukiwać dane o graczach i sceneriach w symulatorze Train Driver 2, tak jak na stronie Stacjownika oraz brać udział w dedykowanych aktywnościach na serwerze. Jest on w całości zintegrowany z usługami backendowymi oraz API."
},
"td2-discord-presence": {
diff --git a/src/sections/ProjectsSection.tsx b/src/sections/ProjectsSection.tsx
index 046ddaa..9662937 100644
--- a/src/sections/ProjectsSection.tsx
+++ b/src/sections/ProjectsSection.tsx
@@ -5,27 +5,29 @@ import { StyledSectionHeader } from '../components/styles/SectionHeader.styled';
import { useTranslation } from 'react-i18next';
const badges = {
- HTML: ' https://img.shields.io/badge/HTML5-E34F26?style=for-the-badge&logo=html5&logoColor=white',
- CSS: ' https://img.shields.io/badge/CSS3-1572B6?style=for-the-badge&logo=css3&logoColor=white',
- JS: ' https://img.shields.io/badge/JavaScript-323330?style=for-the-badge&logo=javascript&logoColor=F7DF1E',
- SASS: ' https://img.shields.io/badge/Sass-CC6699?style=for-the-badge&logo=sass&logoColor=white',
- TS: ' https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge&logo=typescript&logoColor=white',
- Node: ' https://img.shields.io/badge/Node.js-43853D?style=for-the-badge&logo=node.js&logoColor=white',
- Vue: ' https://img.shields.io/badge/Vue.js-35495E?style=for-the-badge&logo=vue.js&logoColor=4FC08D',
- Express: ' https://img.shields.io/badge/Express.js-404D59?style=for-the-badge',
- Mongo: ' https://img.shields.io/badge/MongoDB-4EA94B?style=for-the-badge&logo=mongodb&logoColor=white',
- React: ' https://img.shields.io/badge/React-20232A?style=for-the-badge&logo=react&logoColor=61DAFB',
- Flutter: ' https://img.shields.io/badge/Flutter-02569B?style=for-the-badge&logo=flutter&logoColor=white',
- NET: ' https://img.shields.io/badge/.NET-5C2D91?style=for-the-badge&logo=.net&logoColor=white',
- Python: ' https://img.shields.io/badge/Python-3776AB?style=for-the-badge&logo=python&logoColor=white',
- Java: ' https://img.shields.io/badge/Java-ED8B00?style=for-the-badge&logo=java&logoColor=white',
- AWS: ' https://img.shields.io/badge/Amazon_AWS-232F3E?style=for-the-badge&logo=amazon-aws&logoColor=white',
- Heroku: ' https://img.shields.io/badge/Heroku-430098?style=for-the-badge&logo=heroku&logoColor=white',
+ HTML: 'https://img.shields.io/badge/HTML5-E34F26?style=for-the-badge&logo=html5&logoColor=white',
+ CSS: 'https://img.shields.io/badge/CSS3-1572B6?style=for-the-badge&logo=css3&logoColor=white',
+ JS: 'https://img.shields.io/badge/JavaScript-323330?style=for-the-badge&logo=javascript&logoColor=F7DF1E',
+ SASS: 'https://img.shields.io/badge/Sass-CC6699?style=for-the-badge&logo=sass&logoColor=white',
+ TS: 'https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge&logo=typescript&logoColor=white',
+ Node: 'https://img.shields.io/badge/Node.js-43853D?style=for-the-badge&logo=node.js&logoColor=white',
+ Vue: 'https://img.shields.io/badge/Vue.js-35495E?style=for-the-badge&logo=vue.js&logoColor=4FC08D',
+ Express: 'https://img.shields.io/badge/Express.js-404D59?style=for-the-badge',
+ Mongo: 'https://img.shields.io/badge/MongoDB-4EA94B?style=for-the-badge&logo=mongodb&logoColor=white',
+ React: 'https://img.shields.io/badge/React-20232A?style=for-the-badge&logo=react&logoColor=61DAFB',
+ Flutter: 'https://img.shields.io/badge/Flutter-02569B?style=for-the-badge&logo=flutter&logoColor=white',
+ NET: 'https://img.shields.io/badge/.NET-5C2D91?style=for-the-badge&logo=.net&logoColor=white',
+ Python: 'https://img.shields.io/badge/Python-3776AB?style=for-the-badge&logo=python&logoColor=white',
+ Java: 'https://img.shields.io/badge/Java-ED8B00?style=for-the-badge&logo=java&logoColor=white',
+ AWS: 'https://img.shields.io/badge/Amazon_AWS-232F3E?style=for-the-badge&logo=amazon-aws&logoColor=white',
+ Heroku: 'https://img.shields.io/badge/Heroku-430098?style=for-the-badge&logo=heroku&logoColor=white',
NestJS: 'https://img.shields.io/badge/nestjs-red?style=for-the-badge&logo=nestjs&logoColor=white',
- Discord: ' https://img.shields.io/badge/discord.js-white?style=for-the-badge&logo=discord&logoColor=blue',
- Postgresql: ' https://img.shields.io/badge/postgresql-blue?style=for-the-badge&logo=postgresql&logoColor=white',
- CSharp: ' https://img.shields.io/badge/C%20SHARP-orange?style=for-the-badge&logo=csharp&logoColor=white',
- Dotnet: ' https://img.shields.io/badge/.NET-5C2D91?style=for-the-badge&logo=.net&logoColor=white',
+ Discord: 'https://img.shields.io/badge/discord.js-white?style=for-the-badge&logo=discord&logoColor=blue',
+ Postgresql: 'https://img.shields.io/badge/postgresql-blue?style=for-the-badge&logo=postgresql&logoColor=white',
+ CSharp: 'https://img.shields.io/badge/C%20SHARP-orange?style=for-the-badge&logo=csharp&logoColor=white',
+ Dotnet: 'https://img.shields.io/badge/.NET-5C2D91?style=for-the-badge&logo=.net&logoColor=white',
+ Tailwind: 'https://img.shields.io/badge/TAILWIND-blue?style=for-the-badge&logo=tailwindcss&logoColor=white',
+ Electron: 'https://img.shields.io/badge/Electron%20JS-white?style=for-the-badge&logo=electron&logoColor=blue',
};
const projects = {
@@ -57,6 +59,23 @@ const projects = {
repoLink: 'https://github.com/Spythere/genera-tor',
siteLink: 'https://generator-td2.web.app/',
},
+ {
+ id: 'srjp',
+ thumbnailSrc: 'srjp-1.png',
+ iconSrc: 'srjp-logo.svg',
+ subtitle: '',
+ technologies: [badges.Vue, badges.TS, badges.Tailwind],
+ repoLink: 'https://github.com/Spythere/srjp-td2',
+ siteLink: 'https://srjp-td2.web.app/',
+ },
+ {
+ id: 'td2-discord-presence-ui',
+ thumbnailSrc: 'td2-discord-presence-1.png',
+ iconSrc: 'td2-discord-presence-logo.png',
+ subtitle: '',
+ technologies: [badges.Node, badges.TS, badges.Electron],
+ repoLink: 'https://github.com/Spythere/td2-discord-presence-ui',
+ },
{
id: 'stacjownik-manager',
thumbnailSrc: 'stacjownik-manager-1.png',
@@ -114,7 +133,7 @@ function ProjectsSection() {