initial page
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
# codevisoft.com
|
||||
|
||||
Static about/portfolio page for Codevisoft (Paweł Szudarek), meant to be hosted on a Raspberry Pi.
|
||||
|
||||
## Structure
|
||||
|
||||
- `index.html` — page content
|
||||
- `styles.css` — styling
|
||||
- `script.js` — small footer-year script
|
||||
- `images/` — logo assets
|
||||
|
||||
No build step — plain static files.
|
||||
|
||||
## Deploying on the Raspberry Pi (nginx)
|
||||
|
||||
1. Install nginx if not already installed:
|
||||
```
|
||||
sudo apt update && sudo apt install nginx
|
||||
```
|
||||
2. Copy the site files to the web root, e.g.:
|
||||
```
|
||||
sudo mkdir -p /var/www/codevisoft
|
||||
sudo cp -r index.html styles.css script.js images /var/www/codevisoft/
|
||||
```
|
||||
3. Create an nginx server block, e.g. `/etc/nginx/sites-available/codevisoft`:
|
||||
```
|
||||
server {
|
||||
listen 80;
|
||||
server_name codevisoft.com www.codevisoft.com;
|
||||
root /var/www/codevisoft;
|
||||
index index.html;
|
||||
}
|
||||
```
|
||||
4. Enable it and reload nginx:
|
||||
```
|
||||
sudo ln -s /etc/nginx/sites-available/codevisoft /etc/nginx/sites-enabled/
|
||||
sudo nginx -t
|
||||
sudo systemctl reload nginx
|
||||
```
|
||||
5. Point your router's port forwarding (80/443) and DNS `A` record for `codevisoft.com` at your public IP, or use a tunnel (e.g. Cloudflare Tunnel) if you don't want to expose the Pi directly.
|
||||
6. For HTTPS, use `certbot` (`sudo apt install certbot python3-certbot-nginx`) once DNS is pointed at the Pi.
|
||||
|
||||
## Editing content
|
||||
|
||||
Edit `index.html` directly — sections are marked `About`, `Portfolio`, and `Contact`. Update the email address, portfolio entries, and links as needed.
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 80 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 210 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 180 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 137 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 180 KiB |
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="120mm" height="25.44mm" viewBox="0 0 2160 458">
|
||||
<title>CODEVISOFT logo</title>
|
||||
<path d="M 35 243 L 13 320 L 90 320 L 112 243 Z M 97 13 L 41 216 L 59 216 L 69 179 L 81 144 L 167 144 L 183 93 L 179 87 L 179 81 L 186 74 L 195 75 L 200 82 L 200 86 L 198 90 L 191 95 L 174 152 L 87 153 L 68 216 L 94 216 L 108 168 L 110 166 L 196 166 L 212 115 L 208 109 L 208 103 L 213 97 L 222 96 L 227 100 L 229 108 L 227 112 L 219 119 L 203 174 L 116 175 L 104 216 L 216 216 L 246 116 L 243 110 L 243 102 L 249 96 L 257 96 L 263 102 L 263 110 L 259 115 L 254 117 L 226 215 L 244 216 L 300 13 Z" fill="#FFFFFF" fill-rule="evenodd"/>
|
||||
<path d="M 159 243 L 102 446 L 135 446 L 172 328 L 169 324 L 169 317 L 174 311 L 182 310 L 189 316 L 189 325 L 184 330 L 180 331 L 145 446 L 182 446 L 218 332 L 215 318 L 218 313 L 223 310 L 231 311 L 235 315 L 236 324 L 231 330 L 227 331 L 191 446 L 224 446 L 260 332 L 257 318 L 260 313 L 265 310 L 273 311 L 277 315 L 278 324 L 268 333 L 233 446 L 305 446 L 362 243 Z M 1838 208 L 1830 254 L 1857 254 L 1865 208 Z M 1059 209 L 1058 222 L 1060 232 L 1064 240 L 1077 251 L 1087 254 L 1168 254 L 1172 227 L 1098 227 L 1092 226 L 1087 222 L 1087 208 Z M 2095 152 L 2067 152 L 2050 254 L 2077 254 Z M 297 115 L 269 216 L 370 216 L 398 115 Z M 2023 141 L 2143 141 L 2148 114 L 2028 114 Z M 1858 132 L 1848 150 L 1840 194 L 1841 198 L 1941 198 L 1947 170 L 1874 170 L 1873 163 L 1876 150 L 1882 143 L 1887 141 L 1966 141 L 1970 114 L 1890 114 L 1871 121 Z M 1774 118 L 1762 114 L 1717 114 L 1698 121 L 1684 133 L 1674 153 L 1667 194 L 1668 198 L 1694 197 L 1701 155 L 1704 148 L 1711 142 L 1755 141 L 1762 146 L 1763 155 L 1754 207 L 1750 220 L 1742 226 L 1698 226 L 1692 221 L 1692 208 L 1665 208 L 1665 231 L 1668 238 L 1676 247 L 1694 254 L 1736 254 L 1756 247 L 1769 236 L 1779 218 L 1791 148 L 1787 131 L 1782 124 Z M 1610 114 L 1543 114 L 1523 122 L 1511 133 L 1504 144 L 1500 159 L 1501 174 L 1506 184 L 1513 191 L 1527 197 L 1574 198 L 1580 204 L 1580 211 L 1577 220 L 1568 226 L 1495 226 L 1490 254 L 1563 254 L 1583 247 L 1596 236 L 1604 223 L 1608 208 L 1607 194 L 1601 182 L 1593 175 L 1578 170 L 1533 169 L 1528 164 L 1528 155 L 1530 149 L 1536 143 L 1541 141 L 1605 141 Z M 1451 114 L 1424 114 L 1399 254 L 1427 253 Z M 1366 114 L 1337 115 L 1293 204 L 1291 203 L 1279 115 L 1250 114 L 1266 236 L 1271 250 L 1278 254 L 1289 254 L 1297 250 L 1303 244 Z M 1076 114 L 1062 192 L 1063 198 L 1164 197 L 1168 170 L 1095 170 L 1094 167 L 1098 144 L 1100 141 L 1187 141 L 1192 114 Z M 903 114 L 888 197 L 916 197 L 925 143 L 927 141 L 976 141 L 984 146 L 984 160 L 975 211 L 971 221 L 968 224 L 963 226 L 912 226 L 911 223 L 914 208 L 887 208 L 879 254 L 958 254 L 976 248 L 989 238 L 998 225 L 1001 217 L 1012 156 L 1012 140 L 1007 128 L 996 118 L 984 114 Z M 823 118 L 811 114 L 765 114 L 748 120 L 732 134 L 723 152 L 716 198 L 743 197 L 750 154 L 753 147 L 760 142 L 803 141 L 808 143 L 811 147 L 811 159 L 801 215 L 795 224 L 790 226 L 747 226 L 740 220 L 740 208 L 713 209 L 713 229 L 718 240 L 726 248 L 742 254 L 784 254 L 803 248 L 820 233 L 828 217 L 839 156 L 839 141 L 837 134 L 833 127 Z M 653 120 L 638 114 L 592 114 L 581 117 L 570 123 L 558 135 L 549 156 L 539 213 L 541 233 L 545 240 L 553 248 L 569 254 L 611 254 L 623 251 L 633 246 L 646 234 L 653 222 L 656 208 L 629 208 L 625 221 L 617 226 L 573 226 L 567 220 L 567 210 L 577 153 L 583 144 L 590 141 L 630 141 L 635 143 L 638 147 L 637 159 L 665 159 L 666 141 L 660 127 Z" fill="#36A9E1" fill-rule="evenodd"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.5 KiB |
+97
@@ -0,0 +1,97 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Codevisoft — Paweł Szudarek</title>
|
||||
<meta name="description" content="Codevisoft — IT services, software & game development by Paweł Szudarek.">
|
||||
<link rel="icon" type="image/png" href="images/Emblem.png">
|
||||
<link rel="stylesheet" href="styles.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header class="site-header">
|
||||
<div class="container header-inner">
|
||||
<nav>
|
||||
<a href="#about">About</a>
|
||||
<a href="#portfolio">Portfolio</a>
|
||||
<a href="#contact">Contact</a>
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
|
||||
<section class="hero">
|
||||
<div class="container">
|
||||
<img class="hero-logo" src="images/FullLogo_transparent.png" alt="Codevisoft">
|
||||
<p class="tagline">Software & game development, IT services and consulting.</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="about" class="section">
|
||||
<div class="container">
|
||||
<h2>About</h2>
|
||||
<p>
|
||||
Codevisoft is the sole proprietorship of <strong>Paweł Szudarek</strong>, an independent
|
||||
software developer working across IT services & consulting and game development.
|
||||
From small competition projects to freelance IT work, Codevisoft focuses on building
|
||||
solid, well-crafted software.
|
||||
</p>
|
||||
<p class="links-inline">
|
||||
<a href="https://www.linkedin.com/in/pawel-szudarek/" target="_blank" rel="noopener">LinkedIn — Paweł Szudarek</a>
|
||||
·
|
||||
<a href="https://www.linkedin.com/company/codevisoft/" target="_blank" rel="noopener">LinkedIn — Codevisoft</a>
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="portfolio" class="section alt">
|
||||
<div class="container">
|
||||
<h2>Portfolio</h2>
|
||||
<div class="portfolio-grid">
|
||||
|
||||
<article class="card">
|
||||
<h3>Jeżmin</h3>
|
||||
<p class="card-meta">Action-RPG · by CD Pink · ZTGK 2025 competition entry</p>
|
||||
<p>An action-RPG built for the 2025 ZTGK game development competition.</p>
|
||||
<a class="card-link" href="https://codevisoft.itch.io" target="_blank" rel="noopener">View on itch.io →</a>
|
||||
</article>
|
||||
|
||||
<article class="card">
|
||||
<h3>PanDa 3</h3>
|
||||
<p class="card-meta">Educational · by OgórkiKiszone · ZTGK 2026 competition entry</p>
|
||||
<p>An educational game developed for the 2026 ZTGK game development competition.</p>
|
||||
<a class="card-link" href="https://codevisoft.itch.io" target="_blank" rel="noopener">View on itch.io →</a>
|
||||
</article>
|
||||
|
||||
</div>
|
||||
<p class="more-link">
|
||||
More projects on <a href="https://codevisoft.itch.io" target="_blank" rel="noopener">codevisoft.itch.io →</a>
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="contact" class="section">
|
||||
<div class="container">
|
||||
<h2>Contact</h2>
|
||||
<ul class="contact-list">
|
||||
<li><a href="mailto:pszudarek@codevisoft.com">pszudarek@codevisoft.com</a></li>
|
||||
<li><a href="https://www.linkedin.com/in/pawel-szudarek/" target="_blank" rel="noopener">linkedin.com/in/pawel-szudarek</a></li>
|
||||
<li><a href="https://www.linkedin.com/company/codevisoft/" target="_blank" rel="noopener">linkedin.com/company/codevisoft</a></li>
|
||||
<li><a href="https://codevisoft.itch.io" target="_blank" rel="noopener">codevisoft.itch.io</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</main>
|
||||
|
||||
<footer class="site-footer">
|
||||
<div class="container">
|
||||
<p>© <span id="year"></span> Codevisoft — Paweł Szudarek</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="script.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1 @@
|
||||
document.getElementById("year").textContent = new Date().getFullYear();
|
||||
+159
@@ -0,0 +1,159 @@
|
||||
:root {
|
||||
--bg: #0d1117;
|
||||
--bg-alt: #11161d;
|
||||
--text: #e6edf3;
|
||||
--text-dim: #9aa7b4;
|
||||
--accent: #36A9E1;
|
||||
--border: #1f2732;
|
||||
--max-width: 960px;
|
||||
}
|
||||
|
||||
* { box-sizing: border-box; }
|
||||
|
||||
html { scroll-behavior: smooth; }
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
background: var(--bg);
|
||||
color: var(--text);
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
a {
|
||||
color: var(--accent);
|
||||
text-decoration: none;
|
||||
}
|
||||
a:hover { text-decoration: underline; }
|
||||
|
||||
.container {
|
||||
max-width: var(--max-width);
|
||||
margin: 0 auto;
|
||||
padding: 0 1.5rem;
|
||||
}
|
||||
|
||||
.site-header {
|
||||
border-bottom: 1px solid var(--border);
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background: rgba(13, 17, 23, 0.9);
|
||||
backdrop-filter: blur(6px);
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.header-inner {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding-top: 0.75rem;
|
||||
padding-bottom: 0.75rem;
|
||||
}
|
||||
|
||||
nav a {
|
||||
color: var(--text);
|
||||
margin-left: 1.5rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
nav a:hover { color: var(--accent); text-decoration: none; }
|
||||
|
||||
.hero {
|
||||
text-align: center;
|
||||
padding: 5rem 0 4rem;
|
||||
}
|
||||
|
||||
.hero-emblem {
|
||||
width: 88px;
|
||||
height: auto;
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
.hero h1 {
|
||||
font-size: 2.75rem;
|
||||
margin: 0 0 0.5rem;
|
||||
letter-spacing: 0.02em;
|
||||
}
|
||||
|
||||
.tagline {
|
||||
color: var(--text-dim);
|
||||
font-size: 1.15rem;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.section {
|
||||
padding: 3.5rem 0;
|
||||
}
|
||||
|
||||
.section.alt {
|
||||
background: var(--bg-alt);
|
||||
border-top: 1px solid var(--border);
|
||||
border-bottom: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.section h2 {
|
||||
font-size: 1.75rem;
|
||||
margin-top: 0;
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
.links-inline {
|
||||
color: var(--text-dim);
|
||||
}
|
||||
|
||||
.portfolio-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
|
||||
gap: 1.5rem;
|
||||
}
|
||||
|
||||
.card {
|
||||
background: var(--bg);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 10px;
|
||||
padding: 1.5rem;
|
||||
}
|
||||
|
||||
.card h3 {
|
||||
margin: 0 0 0.25rem;
|
||||
}
|
||||
|
||||
.card-meta {
|
||||
color: var(--text-dim);
|
||||
font-size: 0.85rem;
|
||||
margin: 0 0 0.75rem;
|
||||
}
|
||||
|
||||
.card-link {
|
||||
display: inline-block;
|
||||
margin-top: 0.75rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.more-link {
|
||||
margin-top: 2rem;
|
||||
color: var(--text-dim);
|
||||
}
|
||||
|
||||
.contact-list {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.contact-list li {
|
||||
padding: 0.4rem 0;
|
||||
}
|
||||
|
||||
.site-footer {
|
||||
border-top: 1px solid var(--border);
|
||||
padding: 2rem 0;
|
||||
color: var(--text-dim);
|
||||
font-size: 0.9rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@media (max-width: 600px) {
|
||||
.header-inner { flex-direction: column; gap: 0.5rem; }
|
||||
nav a { margin: 0 0.75rem; }
|
||||
.hero { padding: 3.5rem 0 2.5rem; }
|
||||
.hero h1 { font-size: 2.1rem; }
|
||||
}
|
||||
Reference in New Issue
Block a user