diff --git a/views/pages/works.ts b/views/pages/works.ts index 45cdc42..a9892bd 100644 --- a/views/pages/works.ts +++ b/views/pages/works.ts @@ -26,7 +26,7 @@ function ChronologicalWorksTable(works: Work[]): AnyNode { th("Description"), th("Role"), th("Stack"), - th("Start"), + th("Start/End"), th("Status"), ]), ]), @@ -39,7 +39,7 @@ function ChronologicalWorksTable(works: Work[]): AnyNode { td(work.description), td(work.roles.join(", ")), td(work.technologies.join(", ")), - td(work.start), + td(renderDates(work.startDate, work.endDate)), td(work.statuses.join(", ")), ]); }), @@ -47,18 +47,30 @@ function ChronologicalWorksTable(works: Work[]): AnyNode { ]); } +function renderDates(startDate: string, endDate?: string) { + if (endDate) { + return `${startDate}-${endDate}`; + } + + return startDate; +} + interface Work { name: AnyNode; description: string; roles: Role[]; technologies: Technology[]; - start: string; + // TODO: use Date instead of string + startDate: string; + endDate?: string; statuses: Status[]; } enum Role { Author = "author", TechLead = "tech lead", + TeamLead = "team lead", + Developer = "developer", } enum Technology { @@ -71,6 +83,7 @@ enum Technology { NodeJS = "NodeJS", Flask = "Flask", React = "React", + Antd = "Antd", Postgresql = "PostgreSQL", Docker = "Docker", Drone = "Drone", @@ -108,7 +121,7 @@ const CHRONOLOGICAL_WORKS: Work[] = [ description: "Library for parsing and rendering information.", roles: [Role.Author], technologies: [Technology.TypeScript, Technology.Deno], - start: "2022", + startDate: "2022", statuses: [Status.ActiveDeveloped, Status.Experimental], }, { @@ -116,7 +129,7 @@ const CHRONOLOGICAL_WORKS: Work[] = [ description: "Site with recipes which cares about privacy", roles: [Role.Author], technologies: [Technology.TypeScript, Technology.Deno, Technology.Rust], - start: "2022", + startDate: "2022", statuses: [Status.ActiveDeveloped], }, { @@ -129,15 +142,15 @@ const CHRONOLOGICAL_WORKS: Work[] = [ Technology.Docker, Technology.Drone, ], - start: "2022", + startDate: "2022", statuses: [Status.PassivelyMaintained], }, { - name: RepoLink("drone_plugins/docker_stack", "/drone_plugins/docker_stack"), + name: RepoLink("docker stack drone plugin", "/drone_plugins/docker_stack"), description: "Deploy to production using `docker stack deploy`", roles: [Role.Author], technologies: [Technology.Docker, Technology.Drone], - start: "2022", + startDate: "2022", statuses: [Status.PassivelyMaintained], }, { @@ -146,7 +159,7 @@ const CHRONOLOGICAL_WORKS: Work[] = [ "healthy workaholic timer – A tool that keeps you from breaking your health by working all day.", roles: [Role.Author], technologies: [Technology.Rust], - start: "2022", + startDate: "2022", statuses: [Status.ActiveDeveloped], }, { @@ -154,7 +167,7 @@ const CHRONOLOGICAL_WORKS: Work[] = [ description: "Simple SQL migration manager for your project.", roles: [Role.Author], technologies: [Technology.Rust], - start: "2021", + startDate: "2021", statuses: [Status.AsIs], }, { @@ -166,7 +179,7 @@ const CHRONOLOGICAL_WORKS: Work[] = [ "Asynchronous and synchronous interfaces and persistence implementations for your OOD architecture ", roles: [Role.Author], technologies: [Technology.Rust], - start: "2021", + startDate: "2021", statuses: [Status.Deprecated, Status.Experimental], }, { @@ -178,7 +191,7 @@ const CHRONOLOGICAL_WORKS: Work[] = [ "Quickly start creating your new project on the espruino board or a board based on it.", roles: [Role.Author], technologies: [Technology.JavaScript], - start: "2021", + startDate: "2021", statuses: [Status.AsIs], }, { @@ -189,7 +202,7 @@ const CHRONOLOGICAL_WORKS: Work[] = [ description: "Rust client for sonic search backend.", roles: [Role.Author], technologies: [Technology.Rust], - start: "2020", + startDate: "2020", statuses: [Status.PassivelyMaintained], }, { @@ -200,7 +213,7 @@ const CHRONOLOGICAL_WORKS: Work[] = [ description: "Minimalistic REST API client for React inspired by Apollo.", roles: [Role.Author], technologies: [Technology.TypeScript, Technology.React], - start: "2020", + startDate: "2020", statuses: [Status.AsIs], }, { @@ -209,7 +222,7 @@ const CHRONOLOGICAL_WORKS: Work[] = [ "Easy build a configs from environment variables and use it in globally.", roles: [Role.Author], technologies: [Technology.Rust], - start: "2019", + startDate: "2019", statuses: [Status.PassivelyMaintained], }, { @@ -217,7 +230,7 @@ const CHRONOLOGICAL_WORKS: Work[] = [ description: "Simple full-featured finite state machine for your project", roles: [Role.Author], technologies: [Technology.TypeScript, Technology.NodeJS, Technology.Deno], - start: "2019", + startDate: "2019", statuses: [Status.PassivelyMaintained], }, { @@ -236,9 +249,59 @@ const CHRONOLOGICAL_WORKS: Work[] = [ Technology.Docker, Technology.Drone, ], - start: "2019", + startDate: "2019", statuses: [Status.PassivelyMaintained], }, + { + name: RepoLink("genrss", "//github.com/icetemple/genrss"), + description: "RSS generator for python", + roles: [Role.Author], + technologies: [Technology.Python], + startDate: "2019", + statuses: [Status.PassivelyMaintained], + }, + { + name: RepoLink( + "marshmallow_pageinfo", + "//github.com/icetemple/marshmallow_pageinfo", + ), + description: "Page info marshmallow schema for api", + roles: [Role.Author], + technologies: [Technology.Python], + startDate: "2019", + statuses: [Status.AsIs], + }, + { + name: Link("BinaryManagement", { + href: "https://www.binarymanagement.com", + }), + description: "Project management tool for interior designers", + roles: [Role.Developer, Role.TechLead, Role.TeamLead], + technologies: [ + Technology.TypeScript, + Technology.NodeJS, + Technology.React, + Technology.Antd, + Technology.Docker, + Technology.Drone, + ], + startDate: "2018", + statuses: [Status.ActiveDeveloped], + }, + { + name: Link("CoreSpirit", { href: "https://corespirit.com" }), + description: "Social platform focusing on human and planetary enhancement", + roles: [Role.Developer], + technologies: [ + Technology.TypeScript, + Technology.NodeJS, + Technology.React, + Technology.Docker, + ], + startDate: "2018", + endDate: "2019", + statuses: [Status.AsIs], + }, { name: Link("Master Progress", { href: "https://masterprogress.ru" }), description: @@ -251,7 +314,7 @@ const CHRONOLOGICAL_WORKS: Work[] = [ Technology.Docker, Technology.Drone, ], - start: "2018", + startDate: "2018", statuses: [Status.PassivelyMaintained], }, { @@ -259,7 +322,7 @@ const CHRONOLOGICAL_WORKS: Work[] = [ description: "Generate projects from templates", roles: [Role.Author], technologies: [Technology.Python], - start: "2018", + startDate: "2018", statuses: [Status.AsIs], }, { @@ -267,7 +330,7 @@ const CHRONOLOGICAL_WORKS: Work[] = [ description: "Javascript encoder and decoder", roles: [Role.Author], technologies: [Technology.Php], - start: "2015", + startDate: "2015", statuses: [Status.AsIs], }, ];