From 36bedf1c094f0219ef1c8b8af170fc0d14d51ca5 Mon Sep 17 00:00:00 2001 From: Nick Date: Sat, 16 Nov 2024 17:28:46 -0600 Subject: [PATCH] feat: refactored services --- .../Ancestry/AntagonisticPleiotropy.elm | 55 +++++++++++- .../Ancestry/ArtificialManipulation.elm | 55 +++++++++++- .../Ancestry/ImmortalityReductio.elm | 55 +++++++++++- .../Arguments/Ancestry/PolyphenolReductio.elm | 55 +++++++++++- .../src/Debate/Arguments/Ethics/Abortion.elm | 55 +++++++++++- .../Arguments/Ethics/EfilismPatrolSquad.elm | 55 +++++++++++- frontend/src/Debate/Arguments/Template.elm | 1 + frontend/src/Pages/Home_.elm | 2 +- frontend/src/Pages/Services.elm | 84 +++---------------- .../src/Services/Coaching/DebateAnalysis.elm | 14 ++++ .../src/Services/Coaching/DebateTutoring.elm | 14 ++++ .../Services/Coaching/NutritionScience.elm | 14 ++++ frontend/src/Services/Creative/NixBuilds.elm | 14 ++++ frontend/src/Services/Helpers.elm | 45 ++++++++++ frontend/src/Services/Types.elm | 11 +++ 15 files changed, 449 insertions(+), 80 deletions(-) create mode 100644 frontend/src/Services/Coaching/DebateAnalysis.elm create mode 100644 frontend/src/Services/Coaching/DebateTutoring.elm create mode 100644 frontend/src/Services/Coaching/NutritionScience.elm create mode 100644 frontend/src/Services/Creative/NixBuilds.elm create mode 100644 frontend/src/Services/Helpers.elm create mode 100644 frontend/src/Services/Types.elm diff --git a/frontend/src/Debate/Arguments/Ancestry/AntagonisticPleiotropy.elm b/frontend/src/Debate/Arguments/Ancestry/AntagonisticPleiotropy.elm index fda8323..d70779f 100644 --- a/frontend/src/Debate/Arguments/Ancestry/AntagonisticPleiotropy.elm +++ b/frontend/src/Debate/Arguments/Ancestry/AntagonisticPleiotropy.elm @@ -1 +1,54 @@ -module Debate.Arguments.Ancestry.AntagonisticPleiotropy exposing (..) \ No newline at end of file +module Debate.Arguments.Ancestry.AntagonisticPleiotropy exposing (..) + +import Debate.Types exposing (..) + + +argumentAntagonisticPleiotropy : Argument +argumentAntagonisticPleiotropy = + { argumentTitle = "Title" + , propositionTitle = "Proposition" + , propositionSummary = "Summary" + , proofLink = "" + , definitionTable = + [ { definiendum = "" + , definiens = "prop 1" + } + , { definiendum = "" + , definiens = "prop 2" + } + , { definiendum = "" + , definiens = "prop 3" + } + , { definiendum = "" + , definiens = "prop 4" + } + , { definiendum = "" + , definiens = "prop 5" + } + , { definiendum = "" + , definiens = "variable 1" + } + ] + , argumentFormalization = + [ { premises = + [ { premise = "premise 1" + , notation = "" + } + , { premise = "premise 2" + , notation = "" + } + , { premise = "premise 3" + , notation = "" + } + , { premise = "premise 4" + , notation = "" + } + , { premise = "premise 5" + , notation = "" + } + ] + , conclusion = "conclusion" + , conclusionNotation = "(∴)" + } + ] + } diff --git a/frontend/src/Debate/Arguments/Ancestry/ArtificialManipulation.elm b/frontend/src/Debate/Arguments/Ancestry/ArtificialManipulation.elm index dea6257..41f5ef0 100644 --- a/frontend/src/Debate/Arguments/Ancestry/ArtificialManipulation.elm +++ b/frontend/src/Debate/Arguments/Ancestry/ArtificialManipulation.elm @@ -1 +1,54 @@ -module Debate.Arguments.Ancestry.ArtificialManipulation exposing (..) \ No newline at end of file +module Debate.Arguments.Ancestry.ArtificialManipulation exposing (..) + +import Debate.Types exposing (..) + + +argumentArtificialManipulation : Argument +argumentArtificialManipulation = + { argumentTitle = "Title" + , propositionTitle = "Proposition" + , propositionSummary = "Summary" + , proofLink = "" + , definitionTable = + [ { definiendum = "" + , definiens = "prop 1" + } + , { definiendum = "" + , definiens = "prop 2" + } + , { definiendum = "" + , definiens = "prop 3" + } + , { definiendum = "" + , definiens = "prop 4" + } + , { definiendum = "" + , definiens = "prop 5" + } + , { definiendum = "" + , definiens = "variable 1" + } + ] + , argumentFormalization = + [ { premises = + [ { premise = "premise 1" + , notation = "" + } + , { premise = "premise 2" + , notation = "" + } + , { premise = "premise 3" + , notation = "" + } + , { premise = "premise 4" + , notation = "" + } + , { premise = "premise 5" + , notation = "" + } + ] + , conclusion = "conclusion" + , conclusionNotation = "(∴)" + } + ] + } diff --git a/frontend/src/Debate/Arguments/Ancestry/ImmortalityReductio.elm b/frontend/src/Debate/Arguments/Ancestry/ImmortalityReductio.elm index ecac636..b466cc9 100644 --- a/frontend/src/Debate/Arguments/Ancestry/ImmortalityReductio.elm +++ b/frontend/src/Debate/Arguments/Ancestry/ImmortalityReductio.elm @@ -1 +1,54 @@ -module Debate.Arguments.Ancestry.ImmortalityReductio exposing (..) \ No newline at end of file +module Debate.Arguments.Ancestry.ImmortalityReductio exposing (..) + +import Debate.Types exposing (..) + + +argumentImmortalityReductio : Argument +argumentImmortalityReductio = + { argumentTitle = "Title" + , propositionTitle = "Proposition" + , propositionSummary = "Summary" + , proofLink = "" + , definitionTable = + [ { definiendum = "" + , definiens = "prop 1" + } + , { definiendum = "" + , definiens = "prop 2" + } + , { definiendum = "" + , definiens = "prop 3" + } + , { definiendum = "" + , definiens = "prop 4" + } + , { definiendum = "" + , definiens = "prop 5" + } + , { definiendum = "" + , definiens = "variable 1" + } + ] + , argumentFormalization = + [ { premises = + [ { premise = "premise 1" + , notation = "" + } + , { premise = "premise 2" + , notation = "" + } + , { premise = "premise 3" + , notation = "" + } + , { premise = "premise 4" + , notation = "" + } + , { premise = "premise 5" + , notation = "" + } + ] + , conclusion = "conclusion" + , conclusionNotation = "(∴)" + } + ] + } diff --git a/frontend/src/Debate/Arguments/Ancestry/PolyphenolReductio.elm b/frontend/src/Debate/Arguments/Ancestry/PolyphenolReductio.elm index 161a35a..0195de4 100644 --- a/frontend/src/Debate/Arguments/Ancestry/PolyphenolReductio.elm +++ b/frontend/src/Debate/Arguments/Ancestry/PolyphenolReductio.elm @@ -1 +1,54 @@ -module Debate.Arguments.Ancestry.PolyphenolReductio exposing (..) \ No newline at end of file +module Debate.Arguments.Ancestry.PolyphenolReductio exposing (..) + +import Debate.Types exposing (..) + + +argumentPolyphenolReductio : Argument +argumentPolyphenolReductio = + { argumentTitle = "Title" + , propositionTitle = "Proposition" + , propositionSummary = "Summary" + , proofLink = "" + , definitionTable = + [ { definiendum = "" + , definiens = "prop 1" + } + , { definiendum = "" + , definiens = "prop 2" + } + , { definiendum = "" + , definiens = "prop 3" + } + , { definiendum = "" + , definiens = "prop 4" + } + , { definiendum = "" + , definiens = "prop 5" + } + , { definiendum = "" + , definiens = "variable 1" + } + ] + , argumentFormalization = + [ { premises = + [ { premise = "premise 1" + , notation = "" + } + , { premise = "premise 2" + , notation = "" + } + , { premise = "premise 3" + , notation = "" + } + , { premise = "premise 4" + , notation = "" + } + , { premise = "premise 5" + , notation = "" + } + ] + , conclusion = "conclusion" + , conclusionNotation = "(∴)" + } + ] + } diff --git a/frontend/src/Debate/Arguments/Ethics/Abortion.elm b/frontend/src/Debate/Arguments/Ethics/Abortion.elm index 46c7261..2bbe889 100644 --- a/frontend/src/Debate/Arguments/Ethics/Abortion.elm +++ b/frontend/src/Debate/Arguments/Ethics/Abortion.elm @@ -1 +1,54 @@ -module Debate.Arguments.Ethics.Abortion exposing (..) \ No newline at end of file +module Debate.Arguments.Ethics.Abortion exposing (..) + +import Debate.Types exposing (..) + + +argumentAbortion : Argument +argumentAbortion = + { argumentTitle = "Title" + , propositionTitle = "Proposition" + , propositionSummary = "Summary" + , proofLink = "" + , definitionTable = + [ { definiendum = "" + , definiens = "prop 1" + } + , { definiendum = "" + , definiens = "prop 2" + } + , { definiendum = "" + , definiens = "prop 3" + } + , { definiendum = "" + , definiens = "prop 4" + } + , { definiendum = "" + , definiens = "prop 5" + } + , { definiendum = "" + , definiens = "variable 1" + } + ] + , argumentFormalization = + [ { premises = + [ { premise = "premise 1" + , notation = "" + } + , { premise = "premise 2" + , notation = "" + } + , { premise = "premise 3" + , notation = "" + } + , { premise = "premise 4" + , notation = "" + } + , { premise = "premise 5" + , notation = "" + } + ] + , conclusion = "conclusion" + , conclusionNotation = "(∴)" + } + ] + } diff --git a/frontend/src/Debate/Arguments/Ethics/EfilismPatrolSquad.elm b/frontend/src/Debate/Arguments/Ethics/EfilismPatrolSquad.elm index 9f18777..8cedefe 100644 --- a/frontend/src/Debate/Arguments/Ethics/EfilismPatrolSquad.elm +++ b/frontend/src/Debate/Arguments/Ethics/EfilismPatrolSquad.elm @@ -1 +1,54 @@ -module Debate.Arguments.Ethics.EfilismPatrolSquad exposing (..) \ No newline at end of file +module Debate.Arguments.Ethics.EfilismPatrolSquad exposing (..) + +import Debate.Types exposing (..) + + +argumentEfilismPatrolSquad : Argument +argumentEfilismPatrolSquad = + { argumentTitle = "Title" + , propositionTitle = "Proposition" + , propositionSummary = "Summary" + , proofLink = "" + , definitionTable = + [ { definiendum = "" + , definiens = "prop 1" + } + , { definiendum = "" + , definiens = "prop 2" + } + , { definiendum = "" + , definiens = "prop 3" + } + , { definiendum = "" + , definiens = "prop 4" + } + , { definiendum = "" + , definiens = "prop 5" + } + , { definiendum = "" + , definiens = "variable 1" + } + ] + , argumentFormalization = + [ { premises = + [ { premise = "premise 1" + , notation = "" + } + , { premise = "premise 2" + , notation = "" + } + , { premise = "premise 3" + , notation = "" + } + , { premise = "premise 4" + , notation = "" + } + , { premise = "premise 5" + , notation = "" + } + ] + , conclusion = "conclusion" + , conclusionNotation = "(∴)" + } + ] + } diff --git a/frontend/src/Debate/Arguments/Template.elm b/frontend/src/Debate/Arguments/Template.elm index 98fdff4..635bc04 100755 --- a/frontend/src/Debate/Arguments/Template.elm +++ b/frontend/src/Debate/Arguments/Template.elm @@ -8,6 +8,7 @@ argumentTemplate = { argumentTitle = "Title" , propositionTitle = "Proposition" , propositionSummary = "Summary" + , proofLink = "" , definitionTable = [ { definiendum = "" , definiens = "prop 1" diff --git a/frontend/src/Pages/Home_.elm b/frontend/src/Pages/Home_.elm index b6ac932..7627311 100755 --- a/frontend/src/Pages/Home_.elm +++ b/frontend/src/Pages/Home_.elm @@ -3,7 +3,7 @@ module Pages.Home_ exposing (Model, Msg, page) import Config.Colour as T exposing (..) import Config.Format as O exposing (..) import Config.Identity as I exposing (..) -import Cuckery.Types +import Cuckery.Types exposing (..) import Effect exposing (Effect) import Element exposing (..) import Html.Attributes as H exposing (style) diff --git a/frontend/src/Pages/Services.elm b/frontend/src/Pages/Services.elm index 68c6e85..6d49899 100755 --- a/frontend/src/Pages/Services.elm +++ b/frontend/src/Pages/Services.elm @@ -10,6 +10,11 @@ import Html.Attributes as H exposing (style) import Layouts import Page exposing (Page) import Route exposing (Route) +import Services.Coaching.DebateAnalysis exposing (..) +import Services.Coaching.DebateTutoring exposing (..) +import Services.Coaching.NutritionScience exposing (..) +import Services.Creative.NixBuilds exposing (..) +import Services.Helpers exposing (..) import Shared import View exposing (View) @@ -92,77 +97,10 @@ servicesList : Element msg servicesList = column pageList - services - - -type alias MakeRowInput = - { logoImage : String - , logoDescription : String - , servicesLink : String - , servicesTitle : String - , servicesRate : String - , servicesDescription : String - } - - -makeRow : MakeRowInput -> Element msg -makeRow makeRowInput = - let - servicesImageFormat : List (Attribute msg) - servicesImageFormat = - [ width <| px 100 - , alignTop + <| + List.map serviceMaker + [ servicesDebateTutoring + , servicesDebateAnalysis + , servicesNutritionScience + , servicesNixBuilds ] - in - row [ imageSpacer ] - [ image servicesImageFormat - { src = makeRowInput.logoImage - , description = makeRowInput.logoDescription - } - , column paragraphColumnFormat - [ row [ spacing 8 ] - [ newTabLink highlightedTitleFormat - { url = makeRowInput.servicesLink - , label = - transitionHighlightedLinkHover <| - text makeRowInput.servicesTitle - } - , paragraph [ F.color colourTheme.nonHighlightedText ] [ text makeRowInput.servicesRate ] - ] - , paragraph paragraphFormat [ text makeRowInput.servicesDescription ] - ] - ] - - -services : List (Element msg) -services = - List.map makeRow - [ { logoImage = "services/debate.png" - , logoDescription = "debate logo" - , servicesLink = "https://the-nutrivore.social/" - , servicesTitle = "DEBATE COACHING" - , servicesRate = "$60/hr" - , servicesDescription = "Participate in a structured course consisting of five one-hour modules, covering critical thinking, debate strategy, propositional logic, and more. Throughout the course you will receive both personalized and generalizable advice on how to improve your debate performance." - } - , { logoImage = "services/analysis.png" - , logoDescription = "analysis logo" - , servicesLink = "https://the-nutrivore.social/" - , servicesTitle = "DEBATE ANALYSIS" - , servicesRate = "$80/hr" - , servicesDescription = "Participate in focused one-hour sessions wherein your own recorded debates are analyzed for constructive feedback and advice to help you improve as a debater. You may also participate in mock debates, staged debates, and other exercises to help you get more comfortable with debate and verbal confrontation." - } - , { logoImage = "services/nutrition.png" - , logoDescription = "nutrition logo" - , servicesLink = "https://the-nutrivore.social/" - , servicesTitle = "NUTRITION SCIENCE" - , servicesRate = "$40/hr" - , servicesDescription = "Participate in a one-hour Q&A session specifically to inquire about nutrition science. Ask questions about research design, methodology, epistemology, and study interpretation. Also, by participating you will also gain access to nutrition science interpretation cheat-sheets that will streamline and simplify the research appraisal process." - } - , { logoImage = "services/nixos.png" - , logoDescription = "nixos logo" - , servicesLink = "https://the-nutrivore.social/" - , servicesTitle = "CUSTOM NIX BUILDS" - , servicesRate = "$40/hr" - , servicesDescription = "NixOS has become popular in my community, with many people choosing to explore it over Windows, MacOS, and other Linux distributions. Naturally, as a consequence of this, I receive numerous requests for help regarding the Nix programming language and NixOS system configuration. So, to fast-track newcomers and to make my life a little bit easier for both of us, I'm offering to build custom NixOS configurations for interested clients." - } - ] diff --git a/frontend/src/Services/Coaching/DebateAnalysis.elm b/frontend/src/Services/Coaching/DebateAnalysis.elm new file mode 100644 index 0000000..4aec8bf --- /dev/null +++ b/frontend/src/Services/Coaching/DebateAnalysis.elm @@ -0,0 +1,14 @@ +module Services.Coaching.DebateAnalysis exposing (..) + +import Services.Types exposing (..) + + +servicesDebateAnalysis : Service +servicesDebateAnalysis = + { logoImage = "analysis" + , logoDescription = "analysis logo" + , servicesLink = "https://the-nutrivore.social/" + , servicesTitle = "DEBATE ANALYSIS" + , servicesRate = "$80/hr" + , servicesDescription = "Participate in focused one-hour sessions wherein your own recorded debates are analyzed for constructive feedback and advice to help you improve as a debater. You may also participate in mock debates, staged debates, and other exercises to help you get more comfortable with debate and verbal confrontation." + } diff --git a/frontend/src/Services/Coaching/DebateTutoring.elm b/frontend/src/Services/Coaching/DebateTutoring.elm new file mode 100644 index 0000000..2713855 --- /dev/null +++ b/frontend/src/Services/Coaching/DebateTutoring.elm @@ -0,0 +1,14 @@ +module Services.Coaching.DebateTutoring exposing (..) + +import Services.Types exposing (..) + + +servicesDebateTutoring : Service +servicesDebateTutoring = + { logoImage = "debate" + , logoDescription = "debate logo" + , servicesLink = "https://the-nutrivore.social/" + , servicesTitle = "DEBATE COACHING" + , servicesRate = "$60/hr" + , servicesDescription = "Participate in a structured course consisting of five one-hour modules, covering critical thinking, debate strategy, propositional logic, and more. Throughout the course you will receive both personalized and generalizable advice on how to improve your debate performance." + } diff --git a/frontend/src/Services/Coaching/NutritionScience.elm b/frontend/src/Services/Coaching/NutritionScience.elm new file mode 100644 index 0000000..07f2815 --- /dev/null +++ b/frontend/src/Services/Coaching/NutritionScience.elm @@ -0,0 +1,14 @@ +module Services.Coaching.NutritionScience exposing (..) + +import Services.Types exposing (..) + + +servicesNutritionScience : Service +servicesNutritionScience = + { logoImage = "nutrition" + , logoDescription = "nutrition logo" + , servicesLink = "https://the-nutrivore.social/" + , servicesTitle = "NUTRITION SCIENCE" + , servicesRate = "$40/hr" + , servicesDescription = "Participate in a one-hour Q&A session specifically to inquire about nutrition science. Ask questions about research design, methodology, epistemology, and study interpretation. Also, by participating you will also gain access to nutrition science interpretation cheat-sheets that will streamline and simplify the research appraisal process." + } diff --git a/frontend/src/Services/Creative/NixBuilds.elm b/frontend/src/Services/Creative/NixBuilds.elm new file mode 100644 index 0000000..4f39e3a --- /dev/null +++ b/frontend/src/Services/Creative/NixBuilds.elm @@ -0,0 +1,14 @@ +module Services.Creative.NixBuilds exposing (..) + +import Services.Types exposing (..) + + +servicesNixBuilds : Service +servicesNixBuilds = + { logoImage = "nixos" + , logoDescription = "nixos logo" + , servicesLink = "https://the-nutrivore.social/" + , servicesTitle = "CUSTOM NIX BUILDS" + , servicesRate = "$40/hr" + , servicesDescription = "NixOS has become popular in my community, with many people choosing to explore it over Windows, MacOS, and other Linux distributions. Naturally, as a consequence of this, I receive numerous requests for help regarding the Nix programming language and NixOS system configuration. So, to fast-track newcomers and to make my life a little bit easier for both of us, I'm offering to build custom NixOS configurations for interested clients." + } diff --git a/frontend/src/Services/Helpers.elm b/frontend/src/Services/Helpers.elm new file mode 100644 index 0000000..ef33606 --- /dev/null +++ b/frontend/src/Services/Helpers.elm @@ -0,0 +1,45 @@ +module Services.Helpers exposing (..) + +import Config.Colour exposing (..) +import Config.Format exposing (..) +import Cuckery.Types exposing (..) +import Effect exposing (Effect) +import Element exposing (..) +import Element.Border as D +import Element.Font as F +import Html.Attributes as H exposing (style) +import Layouts +import Page exposing (Page) +import Route exposing (Route) +import Services.Types exposing (..) +import Shared +import View exposing (View) + + +servicesImageFormat : List (Attribute msg) +servicesImageFormat = + [ width <| px 100 + , alignTop + ] + + +serviceMaker : Service -> Element msg +serviceMaker service = + row [ imageSpacer ] + [ image servicesImageFormat + { src = "services/" ++ service.logoImage ++ ".png" + , description = service.logoDescription + } + , column paragraphColumnFormat + [ row [ spacing 8 ] + [ newTabLink highlightedTitleFormat + { url = service.servicesLink + , label = + transitionHighlightedLinkHover <| + text service.servicesTitle + } + , paragraph [ F.color colourTheme.nonHighlightedText ] [ text service.servicesRate ] + ] + , paragraph paragraphFormat [ text service.servicesDescription ] + ] + ] diff --git a/frontend/src/Services/Types.elm b/frontend/src/Services/Types.elm new file mode 100644 index 0000000..ac8c691 --- /dev/null +++ b/frontend/src/Services/Types.elm @@ -0,0 +1,11 @@ +module Services.Types exposing (..) + + +type alias Service = + { logoImage : String + , logoDescription : String + , servicesLink : String + , servicesTitle : String + , servicesRate : String + , servicesDescription : String + }