add: Notes app added to my projects
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
import React, { useState } from "react";
|
import React, { useState } from "react";
|
||||||
import { useTranslations, useLocale } from "next-intl";
|
import { useTranslations, useLocale } from "next-intl";
|
||||||
import { Header } from "@/components/header";
|
import { Header } from "@/components/header";
|
||||||
import { SiVk, SiTelegram, SiPostgresql, SiReact, SiGo, SiHtml5, SiMaildotru, SiGmail, SiTiktok } from "react-icons/si";
|
import { SiVk, SiTelegram, SiPostgresql, SiReact, SiGo, SiHtml5, SiMaildotru, SiGmail, SiTiktok, SiGithub } from "react-icons/si";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
import { TriangleAlert } from "lucide-react";
|
import { TriangleAlert } from "lucide-react";
|
||||||
@@ -51,6 +51,7 @@ export default function Main() {
|
|||||||
{"icon": <SiGmail />, "name": t("contact.contacts.2.name"), "username": "rezcjikov@gmail.com", "url": "mailto:rezcjikov@gmail.com"},
|
{"icon": <SiGmail />, "name": t("contact.contacts.2.name"), "username": "rezcjikov@gmail.com", "url": "mailto:rezcjikov@gmail.com"},
|
||||||
{"icon": <SiVk />, "name": t("contact.contacts.3.name"), "username": "@rezcjikov", "url": "https://vk.com/rezcjikov/"},
|
{"icon": <SiVk />, "name": t("contact.contacts.3.name"), "username": "@rezcjikov", "url": "https://vk.com/rezcjikov/"},
|
||||||
{"icon": <SiTiktok />, "name": t("contact.contacts.4.name"), "username": "@gattowolfe", "url": "https://tiktok.com/@gattowolfe/"},
|
{"icon": <SiTiktok />, "name": t("contact.contacts.4.name"), "username": "@gattowolfe", "url": "https://tiktok.com/@gattowolfe/"},
|
||||||
|
{"icon": <SiGithub />, "name": t("contact.contacts.5.name"), "username": "@dusiburg", "url": "https://github.com/dusiburg/"},
|
||||||
]
|
]
|
||||||
|
|
||||||
const languages = [
|
const languages = [
|
||||||
|
|||||||
@@ -59,13 +59,19 @@
|
|||||||
"logoAlt": "Sudoku",
|
"logoAlt": "Sudoku",
|
||||||
"title": "Sudoku",
|
"title": "Sudoku",
|
||||||
"description": "This is a simple game written on Next.js. It's basically the first game I have ever written so that's a nice experience.",
|
"description": "This is a simple game written on Next.js. It's basically the first game I have ever written so that's a nice experience.",
|
||||||
"text": "My friend got me into Sudoku and very soon I was surprised to find that I liked it. It's not as difficult a game as I thought, and moreover it's a great brain teaser. One day, I decided to write my own site with Sudoku because I couldn't stand the large amount of advertising in apps. So, that's the result. I don't know why I chose this 8-bit aesthetic but I like it. Maybe I'll update the site one day and add some new features."
|
"text": "My friend got me into Sudoku and very soon I was surprised to find that I liked it. It's not as difficult a game as I thought, and moreover it's a great brain teaser. One day, I decided to write my own site with Sudoku because I couldn't stand the large amount of advertising in apps. So, that's the result. I don't know why I chose this 8-bit aesthetic but I like it."
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"logoAlt": "Fastlink logo",
|
"logoAlt": "Fastlink logo",
|
||||||
"title": "Fastlink",
|
"title": "Fastlink",
|
||||||
"description": "This is what I'm currently working on (and, surprisingly, it's not related to Dusiburg). It's a try to create a messanger-like service in order to practice my Go knowledge in backend. Of course, it's not ready yet...",
|
"description": "This is what I'm currently working on (and, surprisingly, it's not related to Dusiburg). It's a try to create a messanger-like service in order to practice my Go knowledge in backend. Of course, it's not ready yet...",
|
||||||
"text": "I'm currently working on Fastlink — an attempt to create a simple messenger with backend built with Go. The project is still being developed. I hope to eventually bring it to a state where I can publish it on GitHub. Basically, the main purpose of the project is to help me understand Go better."
|
"text": "I'm currently working on Fastlink — an attempt to create a simple messenger with backend built with Go. The project is still being developed. I hope to eventually bring it to a state where I can publish it on GitHub. Basically, the main purpose of the project is to help me understand Go better."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"logoAlt": "Notes logo",
|
||||||
|
"title": "Notes",
|
||||||
|
"description": "A simple note-taking desktop application built with Wails (Go) and React because I wanted something simple and light for storing some things I have to do.",
|
||||||
|
"text": "A simple note-taking desktop application built with Wails (Go) and React. I wanted something lightweight for keeping my tasks. I didn't really like Notion because I had to turn on my VPN every time I visited it, and if I forgot, I'd get automatically logged out. Obsidian felt a bit too complicated for my needs, so I decided to create my own app."
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -105,7 +111,8 @@
|
|||||||
{ "name": "E-Mail #1" },
|
{ "name": "E-Mail #1" },
|
||||||
{ "name": "E-Mail #2" },
|
{ "name": "E-Mail #2" },
|
||||||
{ "name": "VK" },
|
{ "name": "VK" },
|
||||||
{ "name": "Tiktok" }
|
{ "name": "Tiktok" },
|
||||||
|
{ "name": "Github" }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,13 +59,19 @@
|
|||||||
"logoAlt": "Sudoku",
|
"logoAlt": "Sudoku",
|
||||||
"title": "Sudoku",
|
"title": "Sudoku",
|
||||||
"description": "This is a simple game written on Next.js. It's basically the first game I have ever written so that's a nice experience.",
|
"description": "This is a simple game written on Next.js. It's basically the first game I have ever written so that's a nice experience.",
|
||||||
"text": "My friend got me into Sudoku and very soon I was surprised to find that I liked it. It's not as difficult a game as I thought, and moreover it's a great brain teaser. One day, I decided to write my own site with Sudoku because I couldn't stand the large amount of advertising in apps. So, that's the result. I don't know why I chose this 8-bit aesthetic but I like it. Maybe I'll update the site one day and add some new features."
|
"text": "My friend got me into Sudoku and very soon I was surprised to find that I liked it. It's not as difficult a game as I thought, and moreover it's a great brain teaser. One day, I decided to write my own site with Sudoku because I couldn't stand the large amount of advertising in apps. So, that's the result. I don't know why I chose this 8-bit aesthetic but I like it."
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"logoAlt": "Fastlink logo",
|
"logoAlt": "Fastlink logo",
|
||||||
"title": "Fastlink",
|
"title": "Fastlink",
|
||||||
"description": "This is what I'm currently working on (and, surprisingly, it's not related to Dusiburg). It's a try to create a messanger-like service in order to practice my Go knowledge in backend. Of course, it's not ready yet...",
|
"description": "This is what I'm currently working on (and, surprisingly, it's not related to Dusiburg). It's a try to create a messanger-like service in order to practice my Go knowledge in backend. Of course, it's not ready yet...",
|
||||||
"text": "I'm currently working on Fastlink — an attempt to create a simple messenger with backend built with Go. The project is still being developed. I hope to eventually bring it to a state where I can publish it on GitHub. Basically, the main purpose of the project is to help me understand Go better."
|
"text": "I'm currently working on Fastlink — an attempt to create a simple messenger with backend built with Go. The project is still being developed. I hope to eventually bring it to a state where I can publish it on GitHub. Basically, the main purpose of the project is to help me understand Go better."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"logoAlt": "Notes logo",
|
||||||
|
"title": "Notes",
|
||||||
|
"description": "A simple note-taking desktop application built with Wails (Go) and React because I wanted something simple and light for storing some things I have to do.",
|
||||||
|
"text": "A simple note-taking desktop application built with Wails (Go) and React. I wanted something lightweight for keeping my tasks. I didn't really like Notion because I had to turn on my VPN every time I visited it, and if I forgot, I'd get automatically logged out. Obsidian felt a bit too complicated for my needs, so I decided to create my own app."
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -105,7 +111,8 @@
|
|||||||
{ "name": "E-Mail #1" },
|
{ "name": "E-Mail #1" },
|
||||||
{ "name": "E-Mail #2" },
|
{ "name": "E-Mail #2" },
|
||||||
{ "name": "VK" },
|
{ "name": "VK" },
|
||||||
{ "name": "Tiktok" }
|
{ "name": "Tiktok" },
|
||||||
|
{ "name": "Github" }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,7 @@
|
|||||||
"text": "Долгое время в Объединении Виртуальных Наций не было актуальной карты стран-участников. Карты, создаваемые в фоторедакторах были неточными и быстро устаревали. Поэтому я решил создать интерактивную карту, которую легко можно было бы обновлять и, которая позволяла бы легко находить нужную информацию о странах ОВН."
|
"text": "Долгое время в Объединении Виртуальных Наций не было актуальной карты стран-участников. Карты, создаваемые в фоторедакторах были неточными и быстро устаревали. Поэтому я решил создать интерактивную карту, которую легко можно было бы обновлять и, которая позволяла бы легко находить нужную информацию о странах ОВН."
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"logoAlt": "Vote logo",
|
"logoAlt": "Логотип Vote",
|
||||||
"title": "ЦИК Дусибурга",
|
"title": "ЦИК Дусибурга",
|
||||||
"description": "Платформа для голосований, где проводятся выборы, референдумы и опросы. Сервис создан для того, чтобы исключительно Граждане Дусибурга могли на них голосовать.",
|
"description": "Платформа для голосований, где проводятся выборы, референдумы и опросы. Сервис создан для того, чтобы исключительно Граждане Дусибурга могли на них голосовать.",
|
||||||
"text": "Когда голосования Дусибурга проводились в ВК, нужно было выбирать между честностью и анонимностью, ведь кандидаты зачастую просили друзей проголосовать в закрытом голосовании. Поэтому я сделал собственную платформу с авторизацией через Dusiburg ID, где голосуют только граждане. Недавно я добавил систему регистрации законопроектов для Парламента: парламетарии голосуют, результат автоматически отправляется Президенту, который подписывает или отклонияет закон. При успехе — он публикуется на Dusiburg ID. Большой сложностью была реализация взаимодействия сайта ЦИК, Dusiburg ID и ботов в ВК и Телеграме."
|
"text": "Когда голосования Дусибурга проводились в ВК, нужно было выбирать между честностью и анонимностью, ведь кандидаты зачастую просили друзей проголосовать в закрытом голосовании. Поэтому я сделал собственную платформу с авторизацией через Dusiburg ID, где голосуют только граждане. Недавно я добавил систему регистрации законопроектов для Парламента: парламетарии голосуют, результат автоматически отправляется Президенту, который подписывает или отклонияет закон. При успехе — он публикуется на Dusiburg ID. Большой сложностью была реализация взаимодействия сайта ЦИК, Dusiburg ID и ботов в ВК и Телеграме."
|
||||||
@@ -59,13 +59,19 @@
|
|||||||
"logoAlt": "Sudoku",
|
"logoAlt": "Sudoku",
|
||||||
"title": "Sudoku",
|
"title": "Sudoku",
|
||||||
"description": "Это простенькая игра, написанная на Next.js. По сути, это первая игра, которую я написал, поэтому считаю, что это прекрасный опыт.",
|
"description": "Это простенькая игра, написанная на Next.js. По сути, это первая игра, которую я написал, поэтому считаю, что это прекрасный опыт.",
|
||||||
"text": "Однажды моя подруга предложила поиграть в Судоку, и очень скоро я полюбил эту игру. Она оказалась не такой сложной, как я думал. Более того, это прекрасная разминка для мозга. Устав от большого количества рекламы в приложениях с Судоку, я решил написать свой собственный сайт, как говориться: с блекджеком и ... Я не знаю, почему я выбрал этот пиксельный дизайн, но он прикольный. Может быть, когда-нибудь я обновлю этот сайт и добавлю какие-то новые штучки туда."
|
"text": "Однажды моя подруга предложила поиграть в Судоку, и очень скоро я полюбил эту игру. Она оказалась не такой сложной, как я думал. Более того, это прекрасная разминка для мозга. Устав от большого количества рекламы в приложениях с Судоку, я решил написать свой собственный сайт, как говориться: с блекджеком и ... Я не знаю, почему я выбрал этот пиксельный дизайн, но он прикольный."
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"logoAlt": "Fastlink logo",
|
"logoAlt": "Логотип Fastlink",
|
||||||
"title": "Fastlink",
|
"title": "Fastlink",
|
||||||
"description": "Это — над чем я работаю прямо сейчас (и, удивительно, не связано с Дусибургом). Это попытка создать подобие мессенджера. Делаю я это с целью попрактиковать мои знания в Go. Конечно, пока Fastlink ещё не готов...",
|
"description": "Это — над чем я работаю прямо сейчас (и, удивительно, не связано с Дусибургом). Это попытка создать подобие мессенджера. Делаю я это с целью попрактиковать мои знания в Go. Конечно, пока Fastlink ещё не готов...",
|
||||||
"text": "Сейчас я работаю над Fastlink — попыткой сделать небольшой мессенджер с бекэндом на Go. Проект ещё в разработке. Надеюсь однажды довести его до состояния, когда его можно будет выложить на GitHub. По большому счёту, это проект, цель которого — помочь мне лучше понять Go."
|
"text": "Сейчас я работаю над Fastlink — попыткой сделать небольшой мессенджер с бекэндом на Go. Проект ещё в разработке. Надеюсь однажды довести его до состояния, когда его можно будет выложить на GitHub. По большому счёту, это проект, цель которого — помочь мне лучше понять Go."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"logoAlt": "Логотип Notes",
|
||||||
|
"title": "Notes",
|
||||||
|
"description": "Простое приложение для компьютера для ведения заметок, созданное с помощью Wails (Go) и React. Я хотел что-то лёгкое и простое для ведения списка дел или быстрых заметок",
|
||||||
|
"text": "Простое приложение для компьютера для ведения заметок, созданное с помощью Wails (Go) и React. Я хотел что-то лёгкое и простое для ведения списка дел или быстрых заметок. Мне не очень нравился Notion, потому что каждый раз нужно было включать VPN, а если я забывал — меня автоматически выкидывало из аккаунта. Obsidian показался слишком сложным для простых заметок, поэтому я решил сделать что-то своё."
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -105,7 +111,8 @@
|
|||||||
{ "name": "Почта 1" },
|
{ "name": "Почта 1" },
|
||||||
{ "name": "Почта 2" },
|
{ "name": "Почта 2" },
|
||||||
{ "name": "ВК" },
|
{ "name": "ВК" },
|
||||||
{ "name": "Тикток" }
|
{ "name": "Тикток" },
|
||||||
|
{ "name": "Гитхаб" }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
30
dockerfile
30
dockerfile
@@ -1,24 +1,18 @@
|
|||||||
FROM node:20-slim AS builder
|
FROM node:20-alpine AS builder
|
||||||
|
|
||||||
RUN useradd -m appuser
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
COPY package*.json ./
|
||||||
COPY package.json yarn.lock ./
|
RUN npm install
|
||||||
RUN yarn install --frozen-lockfile
|
|
||||||
|
|
||||||
COPY . .
|
COPY . .
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
RUN --mount=type=cache,target=/app/.next/cache yarn build
|
FROM node:20-alpine
|
||||||
|
|
||||||
FROM node:20-slim AS runner
|
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY --from=builder /app ./
|
COPY package*.json ./
|
||||||
|
RUN npm install --omit=dev
|
||||||
USER appuser
|
COPY --from=builder /app/.next ./.next
|
||||||
|
COPY --from=builder /app/dictionary ./dictionary
|
||||||
|
COPY --from=builder /app/public ./public
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
|
CMD ["npm", "start", "--", "-p", "80", "-H", "0.0.0.0"]
|
||||||
CMD ["yarn", "start", "-p", "80", "-H", "0.0.0.0"]
|
|
||||||
|
|
||||||
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
|
||||||
CMD wget -q --spider http://localhost:80 || exit 1
|
CMD wget -q --spider http://localhost:80/ || exit 1
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"id": 0,
|
"id": 1,
|
||||||
"screenshots": [
|
"screenshots": [
|
||||||
"/images/screenshots/id/1.png",
|
"/images/screenshots/id/1.png",
|
||||||
"/images/screenshots/id/4.png",
|
"/images/screenshots/id/4.png",
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
"skills": ["Next.js", "Tailwind", "Postgres", "Supabase"]
|
"skills": ["Next.js", "Tailwind", "Postgres", "Supabase"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 1,
|
"id": 2,
|
||||||
"screenshots": [
|
"screenshots": [
|
||||||
"/images/screenshots/map/1.png",
|
"/images/screenshots/map/1.png",
|
||||||
"/images/screenshots/map/2.png",
|
"/images/screenshots/map/2.png",
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
"skills": ["Next.js", "Tailwind", "Mapbox", "Postgres", "Supabase"]
|
"skills": ["Next.js", "Tailwind", "Mapbox", "Postgres", "Supabase"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 2,
|
"id": 3,
|
||||||
"screenshots": [
|
"screenshots": [
|
||||||
"/images/screenshots/vote/1.png"
|
"/images/screenshots/vote/1.png"
|
||||||
],
|
],
|
||||||
@@ -54,11 +54,12 @@
|
|||||||
"skills": ["Next.js", "Tailwind", "Prisma", "Postgres", "Supabase"]
|
"skills": ["Next.js", "Tailwind", "Prisma", "Postgres", "Supabase"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 3,
|
"id": 4,
|
||||||
"screenshots": [
|
"screenshots": [
|
||||||
"/images/screenshots/sudoku/1.png",
|
"/images/screenshots/sudoku/1.png",
|
||||||
"/images/screenshots/sudoku/3.png",
|
"/images/screenshots/sudoku/3.png",
|
||||||
"/images/screenshots/sudoku/2.png"
|
"/images/screenshots/sudoku/2.png",
|
||||||
|
"/images/screenshots/sudoku/4.png"
|
||||||
],
|
],
|
||||||
"screenshotBg": "bg-zinc-800",
|
"screenshotBg": "bg-zinc-800",
|
||||||
"logo": "/images/logos/sudoku.png",
|
"logo": "/images/logos/sudoku.png",
|
||||||
@@ -71,7 +72,7 @@
|
|||||||
"skills": ["Next.js", "Tailwind", "Shadcn"]
|
"skills": ["Next.js", "Tailwind", "Shadcn"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 4,
|
"id": 5,
|
||||||
"screenshots": [
|
"screenshots": [
|
||||||
"/images/screenshots/fastlink/1.png",
|
"/images/screenshots/fastlink/1.png",
|
||||||
"/images/screenshots/fastlink/2.png",
|
"/images/screenshots/fastlink/2.png",
|
||||||
@@ -84,5 +85,21 @@
|
|||||||
"text": "projects.items.4.text",
|
"text": "projects.items.4.text",
|
||||||
"description": "projects.items.4.description",
|
"description": "projects.items.4.description",
|
||||||
"skills": ["Next.js", "Tailwind", "Shadcn", "Go", "Postgres", "Supabase"]
|
"skills": ["Next.js", "Tailwind", "Shadcn", "Go", "Postgres", "Supabase"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 6,
|
||||||
|
"screenshots": [
|
||||||
|
"/images/screenshots/notes/1.png",
|
||||||
|
"/images/screenshots/notes/2.png"
|
||||||
|
],
|
||||||
|
"screenshotBg": "bg-black",
|
||||||
|
"logo": "/images/logos/notes.png",
|
||||||
|
"logoAlt": "projects.items.5.logoAlt",
|
||||||
|
"title": "projects.items.5.title",
|
||||||
|
"url": "https://github.com/dusiburg/notes",
|
||||||
|
"hostname": "@dusiburg/notes",
|
||||||
|
"text": "projects.items.5.text",
|
||||||
|
"description": "projects.items.5.description",
|
||||||
|
"skills": ["Go", "React"]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
BIN
public/images/logos/notes.png
Normal file
BIN
public/images/logos/notes.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 120 KiB |
BIN
public/images/screenshots/notes/1.png
Normal file
BIN
public/images/screenshots/notes/1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 51 KiB |
BIN
public/images/screenshots/notes/2.png
Normal file
BIN
public/images/screenshots/notes/2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 30 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 27 KiB |
BIN
public/images/screenshots/sudoku/4.png
Normal file
BIN
public/images/screenshots/sudoku/4.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 27 KiB |
Reference in New Issue
Block a user