Compare commits
302 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6af5d7fa1f | |||
| 1df9b22fa3 | |||
| 17713d4f9d | |||
| d0a930794e | |||
| 170e7b3c31 | |||
| 20f39b545d | |||
| 22454369fd | |||
| 7a9805ebe9 | |||
| 4c69a4620d | |||
| ae28ec183e | |||
| b49e9e70b2 | |||
| 4510bb08d8 | |||
| 0825d87d0f | |||
| bcad873b97 | |||
| f6a5080769 | |||
| e3d3b736f1 | |||
| 56c509b4c1 | |||
| 771b9eb391 | |||
| 75cf2e2ce1 | |||
| 4fe78fd96d | |||
| 50fd27d193 | |||
| 6cb18c4a13 | |||
| 2009a65f55 | |||
| c22bad5718 | |||
| 4fbec0b85c | |||
| 81be5a1e60 | |||
| 80ccf1bc66 | |||
| d75c6b4756 | |||
| 69c06636ab | |||
| 3c72152704 | |||
| 42ce058dc9 | |||
| 2ad2907f5f | |||
| f61fc155a8 | |||
| 67627d4d16 | |||
| 4639397d25 | |||
| 630c0bce05 | |||
| 802b308826 | |||
| e4784e1932 | |||
| b80942ee53 | |||
| a27c77e16c | |||
| 813479a602 | |||
| c12d4c1e73 | |||
| c015f0a275 | |||
| 6a9cb63cff | |||
| 453d20d345 | |||
| 5007d443e7 | |||
| 7abb7dc414 | |||
| 648c49582e | |||
| 103f2b163a | |||
| c50a09c691 | |||
| fda39d7372 | |||
| 2b75f5a567 | |||
| 3689dbc60c | |||
| 4e27d892d5 | |||
| 80a961d1f9 | |||
| 0a36c1c233 | |||
| db8c8ea2b9 | |||
| 9459930291 | |||
| cea106b134 | |||
| a854de921b | |||
| 9c8a2eb4ce | |||
| ff558534a0 | |||
| 56531b1cfc | |||
| a7c297354f | |||
| ff5da7a131 | |||
| 7412b652c1 | |||
| eb64777252 | |||
| af9b115205 | |||
| 73869a4c15 | |||
| b6e0e5ea36 | |||
| 7ed7849c43 | |||
| 96a591b1c5 | |||
| 19ad40b969 | |||
| 482be66b43 | |||
| 5439ff9a56 | |||
| b7c06890fe | |||
| cdff86c0f3 | |||
| 984966f3af | |||
| fe015c3bce | |||
| a570fde9d7 | |||
| c683b2d61a | |||
| c23200401f | |||
| 827eab0531 | |||
| 1ee25d3447 | |||
| e62017691c | |||
| c116ea27cc | |||
| eb67fedde4 | |||
| 006a2dd548 | |||
| 49bb413424 | |||
| be4358b128 | |||
| db662959aa | |||
| 58b3e9594a | |||
| a120d7580d | |||
| 7b2393142f | |||
| 110ea83dc5 | |||
| d4bdeeb9ae | |||
| 2a44d99814 | |||
| 4e56f5d832 | |||
| 5ed2bfcbec | |||
| 9195bd2d59 | |||
| a50f6d2562 | |||
| ead8465673 | |||
| 749acccb07 | |||
| 5ef98ae1f5 | |||
| c449d2e1d0 | |||
| c8b846f518 | |||
| a80e92dcd4 | |||
| 95f02de0ae | |||
| b16ea3d5de | |||
| bad9ace8c8 | |||
| 1a2a870f18 | |||
| 34d8213156 | |||
| 238508f875 | |||
| 0fdc1aef3a | |||
| 71f209edde | |||
| 3181cede9b | |||
| 2579cd4763 | |||
| 63209bbf20 | |||
| 047c8656ac | |||
| e16a3bb8fc | |||
| 9b34d77c42 | |||
| a76ba2b1df | |||
| 5b59d36f76 | |||
| b381400903 | |||
| de93bb2a05 | |||
| 4a6b8093bc | |||
| d381e39f0f | |||
| acb335e010 | |||
| c630ebdb4d | |||
| 504b035b2a | |||
| 15843d8970 | |||
| d34e371d37 | |||
| e1e06f185e | |||
| a39e6fec4d | |||
| 12cce80502 | |||
| 1be5ef9cb4 | |||
| f7a65fabc0 | |||
| fbe20594dd | |||
| 734a91c490 | |||
| 7280edb99f | |||
| 613732aed2 | |||
| d22d6cb232 | |||
| 744aee88c4 | |||
| 1f2d33ce50 | |||
| 33ebf45627 | |||
| b0489b04ca | |||
| 217ffefb63 | |||
| 4df467988a | |||
| 0d272bc58c | |||
| 42fed752cc | |||
| e8e9fedf7c | |||
| 98e811e641 | |||
| dba12edb94 | |||
| 1360ed2f93 | |||
| 0a53ede99d | |||
| 82e5b40432 | |||
| 9040624ec4 | |||
| 5445d0b419 | |||
| 1434c434bf | |||
| e0e8fa6a78 | |||
| 5fa35bf681 | |||
| b9ed0181fc | |||
| def7c79d82 | |||
| fb8340e23e | |||
| 6e22c5496a | |||
| 62e2985f39 | |||
| 7323600314 | |||
| 2e4e862d87 | |||
| 63f0b5e99c | |||
| 58d9d6cc83 | |||
| 970cceef7f | |||
| 3c791f4b3b | |||
| cd52f3b609 | |||
| 6227a61eb6 | |||
| 570c1e0b48 | |||
| e6457d7487 | |||
| 247c8b793d | |||
| 282cff19a2 | |||
| 11fd154c4b | |||
| 54c23bd530 | |||
| 357ac71186 | |||
| bcd35e2041 | |||
| c116036748 | |||
| f0101059dd | |||
| eb467bf387 | |||
| cfce1ef859 | |||
| fcce680e80 | |||
| d649b4fc0c | |||
| 0373e07d45 | |||
| 9745276ffd | |||
| 42835f98f3 | |||
| 2b150c1d29 | |||
| 1beb35ee80 | |||
| 4f812dc0c8 | |||
| 955664a342 | |||
| 53f4f3de4c | |||
| b77ffff341 | |||
| c4e31e3c91 | |||
| 9f95b3d05f | |||
| fd7e41bffb | |||
| a062841b9c | |||
| 643ed1505a | |||
| 5dde3422e7 | |||
| 16504230b2 | |||
| 0fd26fa246 | |||
| a33dc3e77e | |||
| 2cf804be05 | |||
| 0fe6a29ffc | |||
| 8e1b0b9a30 | |||
| ba9d938092 | |||
| a2e55927ab | |||
| 1bda00ac9d | |||
| bfdfa28b5b | |||
| 96a3709f0c | |||
| a7fff40d74 | |||
| 5ac532176c | |||
| 325e51953a | |||
| 48d9437f59 | |||
| 3f2cb7717e | |||
| 2ea74f90ac | |||
| af2190c447 | |||
| f413435194 | |||
| e770722ad0 | |||
| 4cab856739 | |||
| 0e5f7339e8 | |||
| d53cd5f34c | |||
| 6c73fe9675 | |||
| a02e4891c2 | |||
| 57ef1484a9 | |||
| 25245939ff | |||
| 225626137a | |||
| fffd2588f9 | |||
| 95244d6e47 | |||
| 452f11eefe | |||
| 824ab05843 | |||
| bcbd61c18c | |||
| e4ab992be4 | |||
| 10ff54f6b0 | |||
| d5f6cb359f | |||
| d54652bcc7 | |||
| 24aa0839de | |||
| 057823c221 | |||
| f57bf98f31 | |||
| 437adf1fc2 | |||
| e767b395a9 | |||
| c3bbb3eda8 | |||
| 8a6b2e0846 | |||
| ea333b7c69 | |||
| 9c77cab47e | |||
| 0301f3a996 | |||
| ee1be687bb | |||
| adb505d8ce | |||
| 56669d5031 | |||
| 1e2ba706bf | |||
| c9b885df9e | |||
| 492d28381f | |||
| 22f306ff3c | |||
| c1ff6bbeae | |||
| bb3b9cb27f | |||
| 4449003cc8 | |||
| b4aa3c4871 | |||
| f91bb57932 | |||
| 045d48c988 | |||
| b4b29d6c9b | |||
| e5f6d5f659 | |||
| 6b05fcab4a | |||
| 3f660efa5a | |||
| dd3adae35f | |||
| e9fdeaeb5b | |||
| 77122aeea6 | |||
| c9d6c815d0 | |||
| be3ce96b4a | |||
| 1a8764f725 | |||
| 7547b10d70 | |||
| 0561c7ea50 | |||
| 084f7b7a81 | |||
| 01f663756b | |||
| 0979e84567 | |||
| 2b16776ee3 | |||
| fc4b327e4b | |||
| a525fe81c6 | |||
| 3c0e320bf3 | |||
| 648cec04ef | |||
| 65430c9017 | |||
| f70ff3eedf | |||
| 6596aa2ec8 | |||
| 6ce9c791b0 | |||
| d19613f08f | |||
| ff7143a5fa | |||
| 830538d56e | |||
| 2b1e9c6a0b | |||
| e997cdab8c | |||
| d98e44e17f | |||
| 067843d2b1 | |||
| c25e93ae2c | |||
| 8a05a4c459 | |||
| 48e4f2f6f8 | |||
| ae1c2b0d24 | |||
| e32070eb7b | |||
| f848259bbf | |||
| 6132aec379 | |||
| 0f344ad70d |
@@ -1,3 +1,4 @@
|
||||
NEXT_PUBLIC_DEPLOY_ENV=local
|
||||
NEXT_PUBLIC_API_URL=https://api.dev.sahkoinsinoorikilta.fi/api
|
||||
NEXT_PUBLIC_SITE_URL=https://dev.sahkoinsinoorikilta.fi
|
||||
NEXT_MQTT_HOST=mqtt.dev.sahkoinsinoorikilta.fi
|
||||
@@ -47,5 +47,11 @@ module.exports = {
|
||||
"jsx-a11y/no-noninteractive-element-interactions": "off",
|
||||
"jsx-a11y/no-static-element-interactions": "off",
|
||||
"@typescript-eslint/default-param-last": "warn",
|
||||
"object-curly-newline": "warn",
|
||||
"no-mixed-spaces-and-tabs": "warn",
|
||||
"no-tabs": "warn",
|
||||
"react/jsx-indent": "warn",
|
||||
"padded-blocks": "warn",
|
||||
"spaced-comment": "warn",
|
||||
},
|
||||
};
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
---
|
||||
description: "Use this agent when the user asks to set up or fix ESLint in a project, especially legacy or older projects.\n\nTrigger phrases include:\n- 'get ESLint working'\n- 'fix ESLint'\n- 'setup ESLint for this project'\n- 'enable linting locally'\n- 'ESLint not working'\n- 'get linting working on this old project'\n\nExamples:\n- User says 'get this old projects eslint working so i can lint locally' → invoke this agent to diagnose and repair ESLint setup\n- User asks 'why isn't ESLint running?' → invoke this agent to troubleshoot configuration and dependencies\n- User says 'I need to lint locally but ESLint is broken' → invoke this agent to fix the setup end-to-end"
|
||||
name: eslint-setup-fixer
|
||||
---
|
||||
|
||||
# eslint-setup-fixer instructions
|
||||
|
||||
You are an expert build and tooling engineer specializing in getting ESLint working in legacy and older projects. Your mission is to diagnose ESLint issues and establish a working local linting setup that the user can reliably use.
|
||||
|
||||
Your core responsibilities:
|
||||
- Diagnose why ESLint is not working in the project
|
||||
- Identify and fix configuration issues
|
||||
- Ensure all dependencies are properly installed and compatible
|
||||
- Verify Node.js version compatibility
|
||||
- Establish a working local linting workflow
|
||||
- Document any fixes applied
|
||||
|
||||
Methodology:
|
||||
1. First, examine the current project state:
|
||||
- Check if .eslintrc file exists (any format: .js, .json, .yml, .yaml)
|
||||
- Look for eslintConfig in package.json
|
||||
- Review package.json to see if eslint is listed as a dependency
|
||||
- Check the Node.js version being used
|
||||
|
||||
2. Diagnose the root cause:
|
||||
- Run eslint to see what error messages appear
|
||||
- Check if eslint is installed (node_modules)
|
||||
- Identify dependency version conflicts
|
||||
- Look for missing parser or plugin dependencies
|
||||
- Check for Node version incompatibilities
|
||||
|
||||
3. Fix the issues systematically:
|
||||
- Install or update eslint if needed
|
||||
- Install any missing parser or plugin dependencies
|
||||
- Create or repair .eslintrc configuration if missing
|
||||
- Update package.json scripts with lint commands if needed
|
||||
- Handle any Node version issues (upgrade, use nvm, etc.)
|
||||
|
||||
4. Validate the setup:
|
||||
- Successfully run eslint on the codebase
|
||||
- Verify linting rules are being applied
|
||||
- Test that local linting works reliably
|
||||
- Confirm users can run lint commands
|
||||
|
||||
Common pitfalls to avoid:
|
||||
- Old ESLint versions (< v6) may not work with modern Node versions
|
||||
- Missing @babel/eslint-parser for projects using older Babel
|
||||
- Incompatible parser versions (e.g., wrong TypeScript parser)
|
||||
- Node version too old or too new for the project's dependencies
|
||||
- Configuration files with syntax errors preventing parsing
|
||||
- Circular dependency issues in plugin configurations
|
||||
|
||||
Edge cases to handle:
|
||||
- Project using TypeScript: ensure typescript parser is installed
|
||||
- Project with React: ensure react plugin is installed
|
||||
- Project with old Node version requirements: provide upgrade guidance
|
||||
- Multiple conflicting .eslintrc files: consolidate to single source of truth
|
||||
- Projects with monorepo structure: handle root and package-level configs
|
||||
|
||||
Output format:
|
||||
- Clear summary of what was broken and why
|
||||
- Step-by-step list of all fixes applied
|
||||
- Verification results showing linting now works
|
||||
- Any warnings about compatibility or recommendations for modernization
|
||||
- Command to run linting locally (e.g., `npm run lint` or `npm run eslint`)
|
||||
|
||||
Quality checks:
|
||||
- Verify eslint command runs without errors
|
||||
- Confirm linting actually processes files (not just succeeding with no output)
|
||||
- Test that rules are being enforced
|
||||
- Ensure the fix is reproducible for other developers
|
||||
- Document any version constraints or platform-specific requirements
|
||||
|
||||
When to ask for clarification:
|
||||
- If you're unsure whether the project uses TypeScript, React, or other special configs
|
||||
- If multiple conflicting approaches exist and you need user preference
|
||||
- If Node version constraints prevent a standard fix
|
||||
- If the project has unusual structure that prevents standard ESLint discovery
|
||||
+7
-6
@@ -23,6 +23,7 @@ install:
|
||||
audit:
|
||||
image: node:16
|
||||
needs: ["install"]
|
||||
allow_failure: true
|
||||
stage: audit
|
||||
script:
|
||||
- npm audit --audit-level=critical
|
||||
@@ -79,10 +80,10 @@ test:e2e:
|
||||
|
||||
publish:dev:
|
||||
stage: publish
|
||||
image: docker:stable
|
||||
image: docker:25-cli
|
||||
needs: ["build", "test:e2e", "es:lint", "css:lint"]
|
||||
services:
|
||||
- docker:stable-dind
|
||||
- docker:25-dind
|
||||
only:
|
||||
- master
|
||||
script:
|
||||
@@ -92,9 +93,9 @@ publish:dev:
|
||||
|
||||
publish:prod:
|
||||
stage: publish
|
||||
image: docker:stable
|
||||
image: docker:25-cli
|
||||
services:
|
||||
- docker:stable-dind
|
||||
- docker:25-dind
|
||||
only:
|
||||
- production
|
||||
script:
|
||||
@@ -104,7 +105,7 @@ publish:prod:
|
||||
|
||||
deploy:dev:
|
||||
stage: deploy
|
||||
image: docker:stable
|
||||
image: docker:25-cli
|
||||
only:
|
||||
- master
|
||||
environment:
|
||||
@@ -124,7 +125,7 @@ deploy:dev:
|
||||
|
||||
deploy:prod:
|
||||
stage: deploy
|
||||
image: docker:stable
|
||||
image: docker:25-cli
|
||||
only:
|
||||
- production
|
||||
environment:
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
. "$(dirname "$0")/_/husky.sh"
|
||||
|
||||
npm run lint
|
||||
npm run lint:es
|
||||
|
||||
Generated
+1601
-730
File diff suppressed because it is too large
Load Diff
+6
-1
@@ -72,6 +72,7 @@
|
||||
"fast-deep-equal": "^3.1.3",
|
||||
"js-cookie": "^3.0.1",
|
||||
"lodash": "^4.17.21",
|
||||
"mqtt": "^5.14.1",
|
||||
"next": "^13.1.6",
|
||||
"normalize.css": "^8.0.1",
|
||||
"react": "^18.2.0",
|
||||
@@ -89,7 +90,11 @@
|
||||
"sharp": "^0.30.3",
|
||||
"shortid": "^2.2.16",
|
||||
"styled-components": "^5.3.5",
|
||||
"swr": "^1.2.2"
|
||||
"swr": "^1.2.2",
|
||||
"uuid": "^13.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "16"
|
||||
},
|
||||
"overrides": {
|
||||
"react-mde": {
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
import axios, { AxiosInstance, AxiosRequestConfig } from "axios";
|
||||
import { getAccessTokenCookie } from "@utils/auth";
|
||||
|
||||
const API_TIMEOUT_MS = 10000;
|
||||
|
||||
const axiosInstance: AxiosInstance = axios.create({
|
||||
baseURL: process.env.NEXT_PUBLIC_API_URL,
|
||||
timeout: API_TIMEOUT_MS,
|
||||
});
|
||||
|
||||
export enum APIPath {
|
||||
|
||||
@@ -43,6 +43,7 @@ const StyledCard = styled.article`
|
||||
}
|
||||
|
||||
h3 {
|
||||
hyphens: auto;
|
||||
padding: 0.5rem;
|
||||
font-size: 1.5rem;
|
||||
font-weight: 300;
|
||||
|
||||
@@ -74,7 +74,7 @@ const ContactCard: React.FC<ContactCardProps> = ({
|
||||
src={image}
|
||||
alt={name}
|
||||
layout="fill"
|
||||
objectFit="scale-down"
|
||||
objectFit="cover"
|
||||
/>
|
||||
</ImageContainer>
|
||||
) : null}
|
||||
|
||||
@@ -12,8 +12,8 @@ interface DropDownBoxProps {
|
||||
const Box = styled.div`
|
||||
background-color: ${colors.white};
|
||||
border: 1px solid ${colors.black};
|
||||
margin-top: 0.8rem;
|
||||
position: absolute;
|
||||
/* margin-top: 0.8rem; hides cool onhover effect but fixes a gap problem */
|
||||
left: 0;
|
||||
top: 2.5rem;
|
||||
z-index: 20;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import React from "react";
|
||||
import styled from "styled-components";
|
||||
import { Link } from "@components/index";
|
||||
import Icon, { IconType } from "@components/Icon";
|
||||
import colors from "@theme/colors";
|
||||
import breakpoints from "@theme/breakpoints";
|
||||
|
||||
@@ -28,6 +29,7 @@ const Content = styled.div`
|
||||
h4 {
|
||||
color: ${colors.lightBlue};
|
||||
padding: 1.5rem 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
a {
|
||||
@@ -67,6 +69,27 @@ const Map = styled.div`
|
||||
}
|
||||
`;
|
||||
|
||||
const SomeContainer = styled.div`
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
justify-content: space-between;
|
||||
a {
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
justify-content: center;
|
||||
margin-right: 0.5rem;
|
||||
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
|
||||
}
|
||||
svg{
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
fill: ${colors.white};
|
||||
}
|
||||
`;
|
||||
|
||||
const FooterContent: React.FC = () => (
|
||||
<Content>
|
||||
<div>
|
||||
@@ -77,10 +100,8 @@ const FooterContent: React.FC = () => (
|
||||
<div>
|
||||
<p>TUAS-Talo</p>
|
||||
<p>Maarintie 8</p>
|
||||
<p>PL 15500, 00076 Aalto</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>Y-tunnus: 1627010-1</p>
|
||||
<p>hallitus@sahkoinsinoorikilta.fi</p>
|
||||
<Link to="/yhteystiedot">Yhteystiedot</Link>
|
||||
</div>
|
||||
@@ -92,6 +113,13 @@ const FooterContent: React.FC = () => (
|
||||
<Link to="https://sik.kuvat.fi">Kuvagalleria</Link>
|
||||
<Link to="https://static.sahkoinsinoorikilta.fi/logot-ja-grafiikka/">Logot ja grafiikka</Link>
|
||||
</div>
|
||||
<div>
|
||||
<SomeContainer>
|
||||
<Icon name={IconType.Facebook} link="https://www.facebook.com/AaltoYliopistonSIK/" />
|
||||
<Icon name={IconType.Instagram} link="https://www.instagram.com/sahkoinsinoorikilta/" />
|
||||
<Icon name={IconType.LinkedIn} link="https://www.linkedin.com/groups/8103057/" />
|
||||
</SomeContainer>
|
||||
</div>
|
||||
</Columns>
|
||||
</MarginSpace>
|
||||
</div>
|
||||
|
||||
@@ -26,6 +26,13 @@ const Sticky = styled.div<{ $isHidden?: boolean; $mobileMenuOpen?: boolean }>`
|
||||
transition: all 200ms ease-out;
|
||||
height: ${(p) => (p.$mobileMenuOpen ? "100vh" : "unset")};
|
||||
|
||||
/* tape to allow mobile dropdown menu scrolling */
|
||||
@media screen and (max-width: ${breakpoints.mobile}) {
|
||||
overflow-y: ${(p) => (p.$mobileMenuOpen ? "auto" : "visible")};
|
||||
overflow-x: hidden;
|
||||
-webkit-overflow-scrolling: touch; /* apparently some ios optimization for smoother scrolin' */
|
||||
}
|
||||
|
||||
${(p) => (p.$isHidden ? (`
|
||||
transition: all 200ms ease-in;
|
||||
transform: translateY(-100%);
|
||||
|
||||
@@ -10,20 +10,29 @@ export const renderNavigationItems = (mobile = false): JSX.Element => (
|
||||
<>
|
||||
<NavbarDropdownLink to="/kilta" text="Kilta ›" exploded={mobile}>
|
||||
<NavbarChildLink to="/kilta/toiminta">Toiminta</NavbarChildLink>
|
||||
<NavbarChildLink to="/kilta/fuksi">Fuksi</NavbarChildLink>
|
||||
<NavbarChildLink to="/kilta/jasenyys">Jäsenyys</NavbarChildLink>
|
||||
<NavbarChildLink to="/kilta/hallitus">Hallitus</NavbarChildLink>
|
||||
<NavbarChildLink to="/kilta/toimihenkilot">Toimihenkilöt</NavbarChildLink>
|
||||
<NavbarChildLink to="/kilta/vuokraa">Vuokraa kalustoa</NavbarChildLink>
|
||||
<NavbarChildLink to="/kilta/kunnianosoitukset">Kunnianosoitukset</NavbarChildLink>
|
||||
<NavbarChildLink to="https://static.sahkoinsinoorikilta.fi">Dokumenttiarkisto</NavbarChildLink>
|
||||
<NavbarChildLink to="https://sik.kuvat.fi">Kuvagalleria</NavbarChildLink>
|
||||
<NavbarChildLink to="/kilta/kilta-avustus">Kilta-avustus</NavbarChildLink>
|
||||
</NavbarDropdownLink>
|
||||
<NavbarDropdownLink to="/" text="New students ›" exploded={mobile}>
|
||||
<NavbarChildLink to="/newStudent/fuksi">Fukseille</NavbarChildLink>
|
||||
<NavbarChildLink to="/newStudent/fukseille_en">For Freshmen</NavbarChildLink>
|
||||
<NavbarChildLink to="/newStudent/forExchangers">For Exchange/MSc students</NavbarChildLink>
|
||||
</NavbarDropdownLink>
|
||||
<NavbarDropdownLink to="/opinnot_ja_ura" text="Opinnot ja ura" exploded={mobile} />
|
||||
<NavbarDropdownLink to="/yritysyhteistyo" text="Yritysyhteistyö" exploded={mobile} />
|
||||
<NavbarDropdownLink to="/yhteystiedot" text="Yhteystiedot" exploded={mobile}>
|
||||
{/* <NavbarChildLink to="https://en.wikipedia.org/wiki/Gay">Simo Höglund</NavbarChildLink> */}
|
||||
</NavbarDropdownLink>
|
||||
<NavbarDropdownLink to="/yhdenvertaisuus" text="Yhdenvertaisuus" exploded={mobile} />
|
||||
<NavbarDropdownLink to="/in_english" text="In English" exploded={mobile} />
|
||||
</>
|
||||
);
|
||||
|
||||
const Nav = styled.div`
|
||||
flex: 1 0 auto;
|
||||
display: flex;
|
||||
@@ -47,6 +56,11 @@ const Nav = styled.div`
|
||||
@media screen and (max-width: ${breakpoints.mobile}) {
|
||||
justify-content: center;
|
||||
margin-left: 0;
|
||||
/* line 59 */
|
||||
border-top: 2px solid ${colors.lightBlue}; /* Add line above */
|
||||
padding-top: 0.5rem; /* Add some spacing */
|
||||
padding-bottom: 0.5rem; /* Add some spacing */
|
||||
cursor: pointer; /* Make entire nav clickable */
|
||||
}
|
||||
|
||||
svg {
|
||||
@@ -68,22 +82,12 @@ const DesktopContainer = styled.div`
|
||||
}
|
||||
`;
|
||||
|
||||
const SomeContainer = styled.div`
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
|
||||
a {
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
justify-content: center;
|
||||
margin: 1rem;
|
||||
}
|
||||
`;
|
||||
|
||||
const MobileMenu = styled.div`
|
||||
display: flex;
|
||||
margin: 0 1rem;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
padding: 0 50%; /* Large clickable area horizontally cheeze */
|
||||
|
||||
span {
|
||||
display: flex;
|
||||
@@ -93,9 +97,6 @@ const MobileMenu = styled.div`
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media screen and (max-width: ${breakpoints.mobile}) {
|
||||
margin-left: 3rem;
|
||||
}
|
||||
`;
|
||||
|
||||
interface NavigationProps {
|
||||
@@ -109,13 +110,8 @@ const Navigation: React.FC<NavigationProps> = ({ onMobileMenuOpen }) => {
|
||||
<DesktopContainer>
|
||||
{desktopItems}
|
||||
</DesktopContainer>
|
||||
<SomeContainer>
|
||||
<Icon name={IconType.Facebook} link="https://www.facebook.com/AaltoYliopistonSIK/" />
|
||||
<Icon name={IconType.Instagram} link="https://www.instagram.com/sahkoinsinoorikilta/" />
|
||||
<Icon name={IconType.LinkedIn} link="https://www.linkedin.com/groups/8103057/" />
|
||||
</SomeContainer>
|
||||
<MobileMenu>
|
||||
<Icon name={IconType.HamburgerMenu} onClick={onMobileMenuOpen} />
|
||||
<MobileMenu onClick={onMobileMenuOpen}>
|
||||
<Icon name={IconType.HamburgerMenu} />
|
||||
</MobileMenu>
|
||||
</Nav>
|
||||
);
|
||||
|
||||
@@ -4,8 +4,8 @@ import colors from "@theme/colors";
|
||||
import { renderNavigationItems } from "./Navigation";
|
||||
|
||||
const Nav = styled.nav`
|
||||
padding: 1rem 2rem;
|
||||
|
||||
padding: 1rem 1rem;
|
||||
padding-bottom: 20rem;
|
||||
a {
|
||||
fill: ${colors.lightBlue};
|
||||
color: ${colors.lightBlue};
|
||||
|
||||
@@ -53,9 +53,6 @@
|
||||
"Ilmoittautuminen sulkeutuu":
|
||||
"Signup closes at",
|
||||
|
||||
"Ilmoittautuminen onnistui!":
|
||||
"Signup successful!",
|
||||
|
||||
"Ilmoittauminen on umpeutunut!":
|
||||
"Signup has been closed!",
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import { OptionTypes } from "@components/Widgets/SignupQuestionsWidget/common";
|
||||
|
||||
export interface Signup {
|
||||
id?: number;
|
||||
id?: number; // Database id for completed signup
|
||||
submit_id?: string; // Signup request idempotency key
|
||||
signupForm_id: number;
|
||||
answer: string;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import React, { useState, useEffect } from "react";
|
||||
import { NextPage } from "next";
|
||||
import useSWR from "swr";
|
||||
import { formatRelative } from "date-fns";
|
||||
import { formatRelative, formatISO } from "date-fns";
|
||||
import { toast } from "react-toastify";
|
||||
import styled from "styled-components";
|
||||
import AdminListCommon from "@views/admin/AdminListCommon";
|
||||
@@ -120,8 +120,8 @@ const Renderer: React.FC = () => {
|
||||
{events.sort(eventSort).filter(dateFilter).map((event) => (
|
||||
<tr key={event.id}>
|
||||
<td><Link to={`${URL}/${event.id}`}>{event.title_fi}</Link></td>
|
||||
<td>{formatRelative(new Date(event.start_time), new Date())}</td>
|
||||
<td>{formatRelative(new Date(event.end_time), new Date())}</td>
|
||||
<td>{formatISO(new Date(event.start_time), { representation: "date" })}</td>
|
||||
<td>{formatISO(new Date(event.end_time), { representation: "date" })}</td>
|
||||
<td>
|
||||
<StyledButton $colorOverride="red" buttonStyle="filled" onClick={() => confirmDelete(event)}>
|
||||
Delete
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import React, { useState, useEffect } from "react";
|
||||
import { NextPage } from "next";
|
||||
import useSWR from "swr";
|
||||
import { formatRelative } from "date-fns";
|
||||
import { formatRelative, formatISO } from "date-fns";
|
||||
import { toast } from "react-toastify";
|
||||
import styled from "styled-components";
|
||||
import AdminListCommon from "@views/admin/AdminListCommon";
|
||||
@@ -89,7 +89,7 @@ const Renderer: React.FC = () => {
|
||||
<tr key={post.id}>
|
||||
<td><Link to={`${URL}/${post.id}`}>{post.title_fi}</Link></td>
|
||||
<td>{post.description_fi}</td>
|
||||
<td>{formatRelative(new Date(post.publish_time), new Date())}</td>
|
||||
<td>{formatISO(new Date(post.publish_time), { representation: "date" })}</td>
|
||||
<td>
|
||||
<StyledButton $colorOverride="red" buttonStyle="filled" onClick={() => confirmDelete(post)}>
|
||||
Delete
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import React from "react";
|
||||
import { NextPage } from "next";
|
||||
import useSWR from "swr";
|
||||
import { formatRelative } from "date-fns";
|
||||
import { formatRelative, formatISO } from "date-fns";
|
||||
import { toast } from "react-toastify";
|
||||
import styled from "styled-components";
|
||||
import AdminListCommon from "@views/admin/AdminListCommon";
|
||||
@@ -64,7 +64,7 @@ const Renderer: React.FC = () => {
|
||||
<td>{ad.description_fi}</td>
|
||||
<td>
|
||||
{ad.autohide_enabled
|
||||
? formatRelative(new Date(ad.autohide_at), new Date())
|
||||
? formatISO(new Date(ad.autohide_at), { representation: "date" })
|
||||
: "Disabled"}
|
||||
</td>
|
||||
<td>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import React, { useState, useEffect } from "react";
|
||||
import { NextPage } from "next";
|
||||
import useSWR from "swr";
|
||||
import { formatRelative } from "date-fns";
|
||||
import { formatRelative, formatISO } from "date-fns";
|
||||
import { toast } from "react-toastify";
|
||||
import styled from "styled-components";
|
||||
import AdminListCommon from "@views/admin/AdminListCommon";
|
||||
@@ -122,8 +122,8 @@ const Renderer: React.FC = () => {
|
||||
{signupForms.sort(signupFormSort).filter(dateFilter).map((signupForm) => (
|
||||
<tr key={signupForm.id}>
|
||||
<td><Link to={`${URL}/${signupForm.id}`}>{signupForm.title_fi}</Link></td>
|
||||
<td>{formatRelative(new Date(signupForm.start_time), new Date())}</td>
|
||||
<td>{formatRelative(new Date(signupForm.end_time), new Date())}</td>
|
||||
<td>{formatISO(new Date(signupForm.start_time), { representation: "date" })}</td>
|
||||
<td>{formatISO(new Date(signupForm.end_time), { representation: "date" })}</td>
|
||||
<td><Link to={`${URL}/${signupForm.id}/list`}>View</Link></td>
|
||||
<td><Link to={`${URL}/${signupForm.id}/email`}>Send</Link></td>
|
||||
<td>
|
||||
|
||||
+26
-29
@@ -14,14 +14,13 @@ interface InitialProps {
|
||||
|
||||
const EventPage: NextPage<InitialProps> = ({ event }) => {
|
||||
const router = useRouter();
|
||||
const { id } = router.query;
|
||||
|
||||
if (router.isFallback) return <LoadingView />;
|
||||
|
||||
return (
|
||||
<>
|
||||
<Head>
|
||||
<link rel="canonical" href={`${process.env.NEXT_PUBLIC_SITE_URL}/events/${id}`} />
|
||||
<link rel="canonical" href={`${process.env.NEXT_PUBLIC_SITE_URL}/events/${event.id}`} />
|
||||
</Head>
|
||||
<PageWrapper>
|
||||
<EventPageView event={event} />
|
||||
@@ -30,36 +29,34 @@ const EventPage: NextPage<InitialProps> = ({ event }) => {
|
||||
);
|
||||
};
|
||||
|
||||
export const getStaticPaths: GetStaticPaths = async () => {
|
||||
const allEvents = await EventApi.getEvents();
|
||||
const paths = allEvents.map((e: Event) => ({
|
||||
params: {
|
||||
id: String(e.id),
|
||||
},
|
||||
}
|
||||
));
|
||||
return {
|
||||
paths,
|
||||
fallback: true,
|
||||
};
|
||||
};
|
||||
export const getStaticPaths: GetStaticPaths = async () => ({
|
||||
paths: [],
|
||||
fallback: "blocking",
|
||||
});
|
||||
|
||||
export const getStaticProps: GetStaticProps<InitialProps> = async ({ params }) => {
|
||||
const { id } = params;
|
||||
let notFound = false;
|
||||
let event: Event;
|
||||
try {
|
||||
event = await EventApi.getEvent(Number(id));
|
||||
} catch (err) {
|
||||
notFound = true;
|
||||
const id = Number(params?.id);
|
||||
if (!id) {
|
||||
return {
|
||||
notFound: true,
|
||||
revalidate: 10,
|
||||
};
|
||||
}
|
||||
|
||||
try {
|
||||
const event = await EventApi.getEvent(id);
|
||||
return {
|
||||
props: {
|
||||
event,
|
||||
},
|
||||
revalidate: 10, // Required for deleting hidden pages
|
||||
};
|
||||
} catch {
|
||||
return {
|
||||
notFound: true,
|
||||
revalidate: 10,
|
||||
};
|
||||
}
|
||||
return {
|
||||
props: {
|
||||
event,
|
||||
},
|
||||
revalidate: 10, // Required for deleting hidden pages
|
||||
notFound,
|
||||
};
|
||||
};
|
||||
|
||||
export default EventPage;
|
||||
|
||||
+25
-29
@@ -14,14 +14,13 @@ interface InitialProps {
|
||||
|
||||
const FeedPage: NextPage<InitialProps> = ({ post }) => {
|
||||
const router = useRouter();
|
||||
const { id } = router.query;
|
||||
|
||||
if (router.isFallback) return <LoadingView />;
|
||||
|
||||
return (
|
||||
<>
|
||||
<Head>
|
||||
<link rel="canonical" href={`${process.env.NEXT_PUBLIC_SITE_URL}/feed/${id}`} />
|
||||
<link rel="canonical" href={`${process.env.NEXT_PUBLIC_SITE_URL}/feed/${post.id}`} />
|
||||
</Head>
|
||||
<PageWrapper>
|
||||
<FeedPageView post={post} />
|
||||
@@ -30,37 +29,34 @@ const FeedPage: NextPage<InitialProps> = ({ post }) => {
|
||||
);
|
||||
};
|
||||
|
||||
export const getStaticPaths: GetStaticPaths = async () => {
|
||||
const feed = await FeedApi.getFeed();
|
||||
const paths = feed.map((post: Post) => ({
|
||||
params: {
|
||||
id: String(post.id),
|
||||
},
|
||||
}
|
||||
));
|
||||
return {
|
||||
paths,
|
||||
fallback: true,
|
||||
};
|
||||
};
|
||||
export const getStaticPaths: GetStaticPaths = async () => ({
|
||||
paths: [],
|
||||
fallback: "blocking",
|
||||
});
|
||||
|
||||
export const getStaticProps: GetStaticProps<InitialProps> = async ({ params }) => {
|
||||
const { id } = params;
|
||||
let notFound = false;
|
||||
let post: Post;
|
||||
try {
|
||||
post = await FeedApi.getPost(Number(id));
|
||||
} catch (err) {
|
||||
notFound = true;
|
||||
const id = Number(params?.id);
|
||||
if (!id) {
|
||||
return {
|
||||
notFound: true,
|
||||
revalidate: 10,
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
props: {
|
||||
post,
|
||||
},
|
||||
revalidate: 10, // Required for deleting hidden pages
|
||||
notFound,
|
||||
};
|
||||
try {
|
||||
const post = await FeedApi.getPost(id);
|
||||
return {
|
||||
props: {
|
||||
post,
|
||||
},
|
||||
revalidate: 10, // Required for deleting hidden pages
|
||||
};
|
||||
} catch {
|
||||
return {
|
||||
notFound: true,
|
||||
revalidate: 10,
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
export default FeedPage;
|
||||
|
||||
@@ -44,12 +44,15 @@ const InEnglishPage: NextPage<InitialProps> = ({ initialEvents, initialFeed }) =
|
||||
};
|
||||
|
||||
export const getStaticProps: GetStaticProps<InitialProps> = async () => {
|
||||
const initialEvents = await fetcher<Event[]>(eventApi);
|
||||
const initialFeed = await fetcher<Post[]>(feedApi);
|
||||
const [eventsResult, feedResult] = await Promise.allSettled([
|
||||
fetcher<Event[]>(eventApi),
|
||||
fetcher<Post[]>(feedApi),
|
||||
]);
|
||||
|
||||
return {
|
||||
props: {
|
||||
initialEvents,
|
||||
initialFeed,
|
||||
initialEvents: eventsResult.status === "fulfilled" ? eventsResult.value : [],
|
||||
initialFeed: feedResult.status === "fulfilled" ? feedResult.value : [],
|
||||
},
|
||||
revalidate: 10,
|
||||
};
|
||||
|
||||
+7
-4
@@ -43,12 +43,15 @@ const FrontPage: NextPage<InitialProps> = ({ initialEvents, initialFeed }) => {
|
||||
};
|
||||
|
||||
export const getStaticProps: GetStaticProps<InitialProps> = async () => {
|
||||
const initialEvents = fetcher<Event[]>(eventApi);
|
||||
const initialFeed = fetcher<Post[]>(feedApi);
|
||||
const [eventsResult, feedResult] = await Promise.allSettled([
|
||||
fetcher<Event[]>(eventApi),
|
||||
fetcher<Post[]>(feedApi),
|
||||
]);
|
||||
|
||||
return {
|
||||
props: {
|
||||
initialEvents: await initialEvents,
|
||||
initialFeed: await initialFeed,
|
||||
initialEvents: eventsResult.status === "fulfilled" ? eventsResult.value : [],
|
||||
initialFeed: feedResult.status === "fulfilled" ? feedResult.value : [],
|
||||
},
|
||||
revalidate: 10,
|
||||
};
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
import React from "react";
|
||||
import { NextPage } from "next";
|
||||
import Head from "next/head";
|
||||
import GuildroomPageView from "@views/GuildroomPage/GuildroomPageView";
|
||||
import PageWrapper from "@views/common/PageWrapper";
|
||||
|
||||
const GuildroomPage: NextPage = () => (
|
||||
<>
|
||||
<Head>
|
||||
<link rel="canonical" href={`${process.env.NEXT_PUBLIC_SITE_URL}/kilta/guildroom`} />
|
||||
</Head>
|
||||
<PageWrapper>
|
||||
<GuildroomPageView />
|
||||
</PageWrapper>
|
||||
</>
|
||||
);
|
||||
|
||||
export default GuildroomPage;
|
||||
@@ -0,0 +1,18 @@
|
||||
import React from "react";
|
||||
import { NextPage } from "next";
|
||||
import Head from "next/head";
|
||||
import BoardPageView from "@views/BoardPage/BoardPageView";
|
||||
import PageWrapper from "@views/common/PageWrapper";
|
||||
|
||||
const BoardPage: NextPage = () => (
|
||||
<>
|
||||
<Head>
|
||||
<link rel="canonical" href={`${process.env.NEXT_PUBLIC_SITE_URL}/kilta/hallitus`} />
|
||||
</Head>
|
||||
<PageWrapper>
|
||||
<BoardPageView />
|
||||
</PageWrapper>
|
||||
</>
|
||||
);
|
||||
|
||||
export default BoardPage;
|
||||
@@ -0,0 +1,18 @@
|
||||
import React from "react";
|
||||
import { NextPage } from "next";
|
||||
import Head from "next/head";
|
||||
import MembershipPageView from "@views/MembershipPage/MembershipPageView";
|
||||
import PageWrapper from "@views/common/PageWrapper";
|
||||
|
||||
const MembershipPage: NextPage = () => (
|
||||
<>
|
||||
<Head>
|
||||
<link rel="canonical" href={`${process.env.NEXT_PUBLIC_SITE_URL}/kilta/jasenyys`} />
|
||||
</Head>
|
||||
<PageWrapper>
|
||||
<MembershipPageView />
|
||||
</PageWrapper>
|
||||
</>
|
||||
);
|
||||
|
||||
export default MembershipPage;
|
||||
@@ -0,0 +1,18 @@
|
||||
import React from "react";
|
||||
import { NextPage } from "next";
|
||||
import Head from "next/head";
|
||||
import FundPageView from "@views/FundPage/FundPageView";
|
||||
import PageWrapper from "@views/common/PageWrapper";
|
||||
|
||||
const FundPage: NextPage = () => (
|
||||
<>
|
||||
<Head>
|
||||
<link rel="canonical" href={`${process.env.NEXT_PUBLIC_SITE_URL}/kilta/kilta-avustus`} />
|
||||
</Head>
|
||||
<PageWrapper>
|
||||
<FundPageView />
|
||||
</PageWrapper>
|
||||
</>
|
||||
);
|
||||
|
||||
export default FundPage;
|
||||
@@ -0,0 +1,18 @@
|
||||
import React from "react";
|
||||
import { NextPage } from "next";
|
||||
import Head from "next/head";
|
||||
import CommitteePageView from "@views/CommitteePage/CommitteePageView";
|
||||
import PageWrapper from "@views/common/PageWrapper";
|
||||
|
||||
const CommitteePage: NextPage = () => (
|
||||
<>
|
||||
<Head>
|
||||
<link rel="canonical" href={`${process.env.NEXT_PUBLIC_SITE_URL}/yhteystiedot`} />
|
||||
</Head>
|
||||
<PageWrapper>
|
||||
<CommitteePageView />
|
||||
</PageWrapper>
|
||||
</>
|
||||
);
|
||||
|
||||
export default CommitteePage;
|
||||
@@ -3,9 +3,7 @@ import { NextPage, GetStaticProps } from "next";
|
||||
import Head from "next/head";
|
||||
import useSWR from "swr";
|
||||
import Event from "@models/Event";
|
||||
import EventApi from "@api/eventApi";
|
||||
import Post from "@models/Feed";
|
||||
import FeedApi from "@api/feedApi";
|
||||
import ActualPageView from "@views/ActualPage/ActualPageView";
|
||||
import PageWrapper from "@views/common/PageWrapper";
|
||||
import { fetcher, APIPath, API } from "@api/backend";
|
||||
@@ -40,12 +38,15 @@ const ActualPage: NextPage<InitialProps> = ({ initialEvents, initialFeed }) => {
|
||||
};
|
||||
|
||||
export const getStaticProps: GetStaticProps<InitialProps> = async () => {
|
||||
const initialEvents = await EventApi.getEvents();
|
||||
const initialFeed = await FeedApi.getFeed();
|
||||
const [eventsResult, feedResult] = await Promise.allSettled([
|
||||
fetcher<Event[]>(eventApi),
|
||||
fetcher<Post[]>(feedApi),
|
||||
]);
|
||||
|
||||
return {
|
||||
props: {
|
||||
initialEvents,
|
||||
initialFeed,
|
||||
initialEvents: eventsResult.status === "fulfilled" ? eventsResult.value : [],
|
||||
initialFeed: feedResult.status === "fulfilled" ? feedResult.value : [],
|
||||
},
|
||||
revalidate: 10,
|
||||
};
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
import React from "react";
|
||||
import { NextPage } from "next";
|
||||
import Head from "next/head";
|
||||
import RentPageView from "@views/RentPage/RentPageView";
|
||||
import PageWrapper from "@views/common/PageWrapper";
|
||||
|
||||
const RentPage: NextPage = () => (
|
||||
<>
|
||||
<Head>
|
||||
<link rel="canonical" href={`${process.env.NEXT_PUBLIC_SITE_URL}/kilta/vuokraa`} />
|
||||
</Head>
|
||||
<PageWrapper>
|
||||
<RentPageView />
|
||||
</PageWrapper>
|
||||
</>
|
||||
);
|
||||
|
||||
export default RentPage;
|
||||
@@ -0,0 +1,18 @@
|
||||
import React from "react";
|
||||
import { NextPage } from "next";
|
||||
import Head from "next/head";
|
||||
import ForInternationalPageView from "@views/ForInternationalPage/ForIntlPageView";
|
||||
import PageWrapper from "@views/common/PageWrapper";
|
||||
|
||||
const ForInternationalPage: NextPage = () => (
|
||||
<>
|
||||
<Head>
|
||||
<link rel="canonical" href={`${process.env.NEXT_PUBLIC_SITE_URL}/newStudent/ForIntl`} />
|
||||
</Head>
|
||||
<PageWrapper>
|
||||
<ForInternationalPageView />
|
||||
</PageWrapper>
|
||||
</>
|
||||
);
|
||||
|
||||
export default ForInternationalPage;
|
||||
@@ -0,0 +1,18 @@
|
||||
import React from "react";
|
||||
import { NextPage } from "next";
|
||||
import Head from "next/head";
|
||||
import ContactsPageView from "@views/ForFreshmenPage/ForFreshmenPageView";
|
||||
import PageWrapper from "@views/common/PageWrapper";
|
||||
|
||||
const ContactsPage: NextPage = () => (
|
||||
<>
|
||||
<Head>
|
||||
<link rel="canonical" href={`${process.env.NEXT_PUBLIC_SITE_URL}/newStudent/ForFreshmen`} />
|
||||
</Head>
|
||||
<PageWrapper>
|
||||
<ContactsPageView />
|
||||
</PageWrapper>
|
||||
</>
|
||||
);
|
||||
|
||||
export default ContactsPage;
|
||||
@@ -7,7 +7,7 @@ import PageWrapper from "@views/common/PageWrapper";
|
||||
const FreshmenPage: NextPage = () => (
|
||||
<>
|
||||
<Head>
|
||||
<link rel="canonical" href={`${process.env.NEXT_PUBLIC_SITE_URL}/kilta/fuksi`} />
|
||||
<link rel="canonical" href={`${process.env.NEXT_PUBLIC_SITE_URL}/newStudent/fuksi`} />
|
||||
</Head>
|
||||
<PageWrapper>
|
||||
<FreshmenPageView />
|
||||
+67
-42
@@ -5,7 +5,7 @@ import { useRouter } from "next/router";
|
||||
import { ISubmitEvent } from "@rjsf/core";
|
||||
import { toast } from "react-toastify";
|
||||
import axios from "axios";
|
||||
import useSWR from "swr";
|
||||
import useSWR, { mutate } from "swr";
|
||||
import { Signup, SignupForm } from "@models/Signup";
|
||||
import SignupApi from "@api/signupApi";
|
||||
import SignUpPageView from "@views/SignUpPage/SignUpPageView";
|
||||
@@ -13,6 +13,7 @@ import PageWrapper from "@views/common/PageWrapper";
|
||||
import LoadingView from "@views/common/LoadingView";
|
||||
import noop from "@utils/noop";
|
||||
import NotFoundPage from "@pages/404";
|
||||
import { v4 as uuid } from "uuid";
|
||||
|
||||
type InitialProps = {
|
||||
initialForm: SignupForm;
|
||||
@@ -22,11 +23,13 @@ const FORM_URL = `${process.env.NEXT_PUBLIC_API_URL}/signupForm/`;
|
||||
|
||||
const SignUpPage: NextPage<InitialProps> = ({ initialForm }) => {
|
||||
const router = useRouter();
|
||||
|
||||
const [honeypot, setHoneypot] = useState("");
|
||||
|
||||
const id = String(initialForm?.id ?? "");
|
||||
const SUBMIT_ID = uuid(); // Submission key, generated on page refresh
|
||||
const URL = `${FORM_URL}${id}/`;
|
||||
const { data: signupForm, error } = useSWR<SignupForm>(URL, (url) => axios.get(url).then((res) => res.data), { fallbackData: initialForm });
|
||||
const [isSending, setIsSending] = useState(false);
|
||||
const [formSent, setFormSent] = useState(false);
|
||||
|
||||
if (error) {
|
||||
console.error(error);
|
||||
@@ -43,27 +46,32 @@ const SignUpPage: NextPage<InitialProps> = ({ initialForm }) => {
|
||||
);
|
||||
}
|
||||
|
||||
const onSubmit = async ({ formData }: ISubmitEvent<string>) => {
|
||||
setIsSending(true);
|
||||
const onSubmit = async ({ formData }: ISubmitEvent<any>) => {
|
||||
// for bot detection
|
||||
|
||||
const payload: Signup = {
|
||||
signupForm_id: signupForm.id,
|
||||
answer: formData,
|
||||
};
|
||||
|
||||
if (isSending === true) {
|
||||
toast.error("Sign-up form already submitted! No need to spam send. 😟");
|
||||
if (honeypot !== "") {
|
||||
console.log("bot cought in honeypot cought lacking");
|
||||
toast.success("Sign-up submitted successfully 😎");
|
||||
return;
|
||||
}
|
||||
const trackedForm = {
|
||||
...formData,
|
||||
_source: "from the webs submit",
|
||||
};
|
||||
|
||||
const payload: Signup = {
|
||||
submit_id: SUBMIT_ID, // This is for preventing duplicate requests; NOT RELATED TO THE SIGNUP ID IN DATABASE
|
||||
signupForm_id: signupForm.id,
|
||||
answer: trackedForm,
|
||||
};
|
||||
|
||||
try {
|
||||
await SignupApi.createSignup(payload);
|
||||
toast.success("Sign-up submitted successfully 😎");
|
||||
setFormSent(true);
|
||||
mutate(URL);
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
toast.error("Uh oh! Sign-up failed! 😟");
|
||||
setIsSending(false);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -78,43 +86,60 @@ const SignUpPage: NextPage<InitialProps> = ({ initialForm }) => {
|
||||
formData={{}}
|
||||
onChange={noop}
|
||||
onSubmit={onSubmit}
|
||||
formSent={formSent}
|
||||
/>
|
||||
{/* 3. HONEYPOT INPUT FIELD */}
|
||||
<div
|
||||
style={
|
||||
{
|
||||
position: "absolute", top: "-9999px", left: "-9999px", opacity: 0,
|
||||
}
|
||||
}
|
||||
aria-hidden="true"
|
||||
>
|
||||
<label htmlFor="website_url">Do not fill this out if you are human</label>
|
||||
<input
|
||||
id="website_url"
|
||||
type="text"
|
||||
name="website_url"
|
||||
value={honeypot}
|
||||
onChange={(e) => setHoneypot(e.target.value)}
|
||||
tabIndex={-1} // Removes it from the "tab" cycle so keyboard users don't hit it
|
||||
autoComplete="off"
|
||||
/>
|
||||
</div>
|
||||
</PageWrapper>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export const getStaticPaths: GetStaticPaths = async () => {
|
||||
const allForms = await SignupApi.getForms();
|
||||
const paths = allForms.map((e: SignupForm) => ({
|
||||
params: {
|
||||
id: String(e.id),
|
||||
},
|
||||
}
|
||||
));
|
||||
return {
|
||||
paths,
|
||||
fallback: true,
|
||||
};
|
||||
};
|
||||
export const getStaticPaths: GetStaticPaths = async () => ({
|
||||
paths: [],
|
||||
fallback: "blocking",
|
||||
});
|
||||
|
||||
export const getStaticProps: GetStaticProps<InitialProps> = async ({ params }) => {
|
||||
const { id } = params;
|
||||
let notFound = false;
|
||||
let initialForm: SignupForm;
|
||||
try {
|
||||
initialForm = await SignupApi.getForm(Number(id));
|
||||
} catch {
|
||||
notFound = true;
|
||||
const id = Number(params?.id);
|
||||
if (!id) {
|
||||
return {
|
||||
notFound: true,
|
||||
revalidate: 10,
|
||||
};
|
||||
}
|
||||
|
||||
try {
|
||||
const initialForm = await SignupApi.getForm(id);
|
||||
return {
|
||||
props: {
|
||||
initialForm,
|
||||
},
|
||||
revalidate: 10, // Required for deleting hidden pages
|
||||
};
|
||||
} catch {
|
||||
return {
|
||||
notFound: true,
|
||||
revalidate: 10,
|
||||
};
|
||||
}
|
||||
return {
|
||||
props: {
|
||||
initialForm,
|
||||
},
|
||||
revalidate: 10, // Required for deleting hidden pages
|
||||
notFound,
|
||||
};
|
||||
};
|
||||
|
||||
export default SignUpPage;
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
import React from "react";
|
||||
import { NextPage } from "next";
|
||||
import Head from "next/head";
|
||||
import ContactsPageView from "@views/EquityPage/EquityPageView";
|
||||
import PageWrapper from "@views/common/PageWrapper";
|
||||
|
||||
const ContactsPage: NextPage = () => (
|
||||
<>
|
||||
<Head>
|
||||
<link rel="canonical" href={`${process.env.NEXT_PUBLIC_SITE_URL}/yhdenvertaisuus`} />
|
||||
</Head>
|
||||
<PageWrapper>
|
||||
<ContactsPageView />
|
||||
</PageWrapper>
|
||||
</>
|
||||
);
|
||||
|
||||
export default ContactsPage;
|
||||
@@ -7,7 +7,7 @@ import PageWrapper from "@views/common/PageWrapper";
|
||||
const ContactsPage: NextPage = () => (
|
||||
<>
|
||||
<Head>
|
||||
<link rel="canonical" href={`${process.env.NEXT_PUBLIC_SITE_URL}/yhteystiedot`} />
|
||||
<link rel="canonical" href={`${process.env.NEXT_PUBLIC_SITE_URL}/kilta/yhteystiedot`} />
|
||||
</Head>
|
||||
<PageWrapper>
|
||||
<ContactsPageView />
|
||||
|
||||
@@ -30,10 +30,13 @@ const CorporatePage: NextPage<InitialProps> = ({ initialJobAds }) => {
|
||||
};
|
||||
|
||||
export const getStaticProps: GetStaticProps<InitialProps> = async () => {
|
||||
const initialJobAds = await fetcher<JobAd[]>(jobAdApi);
|
||||
const jobAdsResult = await Promise.allSettled([
|
||||
fetcher<JobAd[]>(jobAdApi),
|
||||
]);
|
||||
|
||||
return {
|
||||
props: {
|
||||
initialJobAds,
|
||||
initialJobAds: jobAdsResult[0].status === "fulfilled" ? jobAdsResult[0].value : [],
|
||||
},
|
||||
revalidate: 10,
|
||||
};
|
||||
|
||||
@@ -31,7 +31,7 @@ const ActualPageHero: React.FC = () => (
|
||||
<HeroAsideItem
|
||||
header="Keksimistä ja rakentelua"
|
||||
link="#elepaja"
|
||||
linkText="Elektroniikkapaja ›"
|
||||
linkText="SIK-Paja ›"
|
||||
/>
|
||||
<HeroAsideItem
|
||||
header="Tiimipelejä ja liikuntaa"
|
||||
|
||||
@@ -125,29 +125,30 @@ const ActualPageView: React.FC<ActualPageViewProps> = ({ events, feed }) => (
|
||||
Yksi näistä asioista on urheilun ja lajikokeiluiden tarjoaminen kiltalaisille.
|
||||
Järjestämme säännöllisesti muiden kiltojen kanssa yhteistyössä mahdollisuuksia pelata esimerkiksi säbää ja muita urheilulajeja.
|
||||
Jopa kesällä monien harrastuksien jäädessä tauolle, voit tulla messiin pelaamaan lentopalloa viikottain.
|
||||
Lajikokeiluita on tarjolla läpi vuoden ja niitä järjestetään yhteistyössä Otaniemen eri urheilu/harrastelujärjestöjen kanssa.
|
||||
Lajikokeiluita on tarjolla läpi vuoden ja niitä järjestetään yhteistyössä Otaniemen eri urheilu-/harrastelujärjestöjen kanssa.
|
||||
Pidä silmät auki killan nettisivujen tapahtumaosiossa ja liity <Link to="https://t.me/joinchat/DJRXxkKd0SMj0e9pBPXF1A">Telegram-ryhmään</Link>.
|
||||
Jos sinulla on ehdotuksia lajikokeiluihin, nykäise urheiluvastaavia tai hyvivointimestaria hihasta!
|
||||
Jos sinulla on ehdotuksia lajikokeiluihin, nykäise liikuntavastaavia tai hyvivointimestaria hihasta!
|
||||
</p>
|
||||
<h6 id="kulttuuri&juhla">Kulttuuria ja juhlia teatterista sitseihin</h6>
|
||||
<p>
|
||||
Hyvinvointitoimikunta järjestää urheilun ja lajikokeilun lisäksi myös kultturelleja tapahtumia ja menoja kiltalaisille.
|
||||
Hyvinvointitoimikunta järjestää urheilun ja lajikokeilujen lisäksi myös kultturelleja tapahtumia ja menoja kiltalaisille.
|
||||
Näihin kultturelleihin tapahtumiin kuuluu hauskaa laidasta laitaan, eli keittiöstä teatteriin ja teatterista mitä mielenkiintoimpiin museoihin.
|
||||
Lisäksi ohjelmatoimikunta viihdyttää kiltalaisia erilaisilla juhlilla rennoista saunailloista juhlavimpiin sitseihin.
|
||||
Lisäksi hupitoimikunta viihdyttää kiltalaisia erilaisilla juhlilla rennoista saunailloista juhlavimpiin sitseihin.
|
||||
Killan nettisivujen <Link to="#tapahtumat">Tapahtumat</Link>-osiosta voit tutkia tulevia kulttuuritapahtumia.
|
||||
</p>
|
||||
<h6 id="yritysyhteistyo">Yhteistyö yritysten kanssa</h6>
|
||||
<p>
|
||||
Killassa toimiva yritystoimikunta vastaa siitä, että killan talous pysyy pystyssä, mutta tämän lisäksi he myös tarjoavat kiltalaisille mahdollisuuksia solmia suhteita alamme huippuyritysten kanssa.
|
||||
Tällaisia mahdollisuuksia järjestetään excujen muodossa, joissa kiltalaiset usein pääsevät yrityksen omiin tiloihin tutustumaan yrityksen toimintaan ja henkilökuntaan, sekä erilaisten Otaniemessä järjestettävien yrityssuhdetapahtumien muodossa.
|
||||
Killassa toimiva yrityssuhdetoimikunta vastaa siitä, että killan talous pysyy pystyssä, mutta tämän lisäksi he myös tarjoavat kiltalaisille mahdollisuuksia solmia suhteita alamme huippuyritysten kanssa.
|
||||
Tällaisia mahdollisuuksia järjestetään excursioiden muodossa, joissa kiltalaiset usein pääsevät yrityksen omiin tiloihin tutustumaan yrityksen toimintaan ja henkilökuntaan,
|
||||
sekä erilaisten Otaniemessä järjestettävien yrityssuhdetapahtumien muodossa.
|
||||
Otaniemi-yritystapahtumia ovat esimerkiksi yrityksien kanssa yhteistyössä järjestetyt saunaillat, sekä jokavuotinen yritysbrunssi.
|
||||
Ilmottautumiset näihin tapahtumiin onnistuvat <Link to="#tapahtumat">Tapahtumat</Link>-osiosta killan nettisivuilta.
|
||||
</p>
|
||||
<h6 id="ulkosuhteet">Kansainvälisty ja luo suhteita</h6>
|
||||
<p>
|
||||
Ulkotoimikunta järjestää kiltalaisten iloksi tapahtumia monien ystävyysjärjestöjen kanssa niin suomessa kuin ulkomaillakin.
|
||||
UTMK:n järjestämissä tapahtumissa pääset kasvattamaan ystäväpiiriäsi Otaniemen ulkopuolelle ja jopa kansainvälistymään toden teolla.
|
||||
UTMK järjestää paljon toimintaa myös vaihto-opiskelijoille ja näihin tapahtumiin kannattaa ehdottomasti osallistua, jos tahtoo luoda ystävyyssuhteita ympäri maailman.
|
||||
Ulkosuhdevastaavat järjestävät kiltalaisten iloksi tapahtumia monien ystävyysjärjestöjen kanssa niin Suomessa kuin ulkomaillakin.
|
||||
Näissä tapahtumissa pääset kasvattamaan ystäväpiiriäsi Otaniemen ulkopuolelle ja jopa kansainvälistymään toden teolla.
|
||||
Kilta järjestää paljon toimintaa myös vaihto-opiskelijoille ja näihin tapahtumiin kannattaa ehdottomasti osallistua, jos tahtoo luoda ystävyyssuhteita ympäri maailman.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -159,9 +160,23 @@ const ActualPageView: React.FC<ActualPageViewProps> = ({ events, feed }) => (
|
||||
<p>Kuinka pääset kiltatoimintaan mukaan?</p>
|
||||
<div>
|
||||
<h6>Kiltakokous</h6>
|
||||
<p>Kiltakokous on killan ylintä toimivaltaa käyttävä elin, joka koostuu kaikista killan varsinaisista jäsenistä. Kiltakokouksen tehtävänä on valvoa hallituksen toimintaa ja päättää kaikkia kiltalaisia koskevista asioista. Kevään kiltakokouksessa hyväksytään toimintasuunnitelma ja talousarvio sekä annetaan vanhalle hallitukselle vastuunvapautus, mikäli tilinpäätös ja toimintakertomus hyväksytään. Syksyn kiltakokous on moniosainen, jonka 1. osassa valitaan hallituksen muodostaja. 2. osassa valitaan hallitus ja 3. osassa valitaan toimihenkilöt. Tämän kokouksen jälkeen killalla on kaikki toimijat valittuna seuraavalle vuodelle. Tämän lisäksi voidaan pitää ylimääräisiä kokouksia, jos hallitus, yleinen kokous tai vähintään 20 kiltalaista sitä kannattaa. Killan sääntöihin voit tutustua tarkemmin <Link to="https://static.sahkoinsinoorikilta.fi/saannot/killansaannot.pdf">täältä.</Link></p>
|
||||
<p>
|
||||
Kiltakokous on killan ylintä toimivaltaa käyttävä elin, joka koostuu kaikista killan varsinaisista jäsenistä.
|
||||
Kiltakokouksen tehtävänä on valvoa hallituksen toimintaa ja päättää kaikkia kiltalaisia koskevista asioista.
|
||||
Kevään kiltakokouksessa hyväksytään toimintasuunnitelma ja talousarvio sekä annetaan vanhalle hallitukselle vastuunvapautus, mikäli tilinpäätös ja toimintakertomus hyväksytään.
|
||||
Syksyn kiltakokous on moniosainen, jonka 1. osassa valitaan puheenjohtaja, 2. osassa valitaan hallitus ja 3. osassa valitaan toimihenkilöt.
|
||||
Tämän kokouksen jälkeen killalla on kaikki toimijat valittuna seuraavalle vuodelle.
|
||||
Tämän lisäksi voidaan pitää ylimääräisiä kokouksia, jos hallitus, yleinen kokous tai vähintään 20 kiltalaista sitä kannattaa.
|
||||
Killan sääntöihin voit tutustua tarkemmin <Link to="https://static.sahkoinsinoorikilta.fi/saannot/killansaannot.pdf">täältä.</Link>
|
||||
</p>
|
||||
<h6>Kähmyt</h6>
|
||||
<p>Killan kähmykaudella voit osoittaa kiinnostuksesi erilaisiin kiltarooleihin kähmyämällä kähmykoneen kautta. Kähmykausi käynnistyy alkusyksystä ja kestää syksyn 3. kiltakokoukseen asti, jossa kiltalaiset äänestävät ensivuoden toimihenkilöt. Hallitusvirkaan pyrkiessä täytyy kähmyäminen tehdä syksyn 2. kiltakokoukseen mennessä. Kähmyttäessäsi voit vapaasti valita tai keksiä roolin ja pyrkiä hallitukseen tai toimihenkilöksi. Muista kuitenkin, että kähmyäminen ei ole sitova killan tehtäviin vaan enemmänkin mielenkiinnon osoitus.</p>
|
||||
<p>
|
||||
Killan kähmykaudella voit osoittaa kiinnostuksesi erilaisiin kiltarooleihin kähmyämällä kähmykoneen kautta.
|
||||
Kähmykausi käynnistyy alkusyksystä ja kestää syksyn 3. kiltakokoukseen asti, jossa kiltalaiset äänestävät seuraavan vuoden toimihenkilöt.
|
||||
Hallitusvirkaan pyrkiessä täytyy kähmyäminen tehdä syksyn 2. kiltakokoukseen mennessä.
|
||||
Kähmyttäessäsi voit vapaasti valita tai keksiä roolin ja pyrkiä hallitukseen tai toimihenkilöksi.
|
||||
Muista kuitenkin, että kähmyäminen ei ole sitova killan tehtäviin vaan enemmänkin mielenkiinnon osoitus.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</TextSection>
|
||||
|
||||
@@ -0,0 +1,150 @@
|
||||
import React from "react";
|
||||
import styled from "styled-components";
|
||||
import { TextSection, Link } from "@components/index";
|
||||
import colors from "@theme/colors";
|
||||
import ContactCard from "@components/ContactCard";
|
||||
|
||||
import BoardJson from "./board.json";
|
||||
|
||||
const orderedCommittees = [
|
||||
BoardJson,
|
||||
];
|
||||
|
||||
const blankProfile = "/img/blank_profile.png";
|
||||
|
||||
const BlueLink = styled(Link)`
|
||||
color: ${colors.blue1};
|
||||
|
||||
&:hover {
|
||||
color: ${colors.lightBlue};
|
||||
}
|
||||
`;
|
||||
|
||||
const Container = styled.div`
|
||||
color: ${colors.darkBlue};
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 50vw;
|
||||
|
||||
& > h2 {
|
||||
text-transform: uppercase;
|
||||
font-size: 4rem;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
& > div {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
}
|
||||
|
||||
@media (max-width: 950px) {
|
||||
width: 80vw;
|
||||
}
|
||||
`;
|
||||
|
||||
const BoardImage = styled.img`
|
||||
width: 100%;
|
||||
height: auto;
|
||||
margin-bottom: 2rem;
|
||||
border-radius: 8px;
|
||||
`;
|
||||
|
||||
const ContactContainer = styled.div`
|
||||
overflow-x: hidden;
|
||||
@media (max-width: 950px) {
|
||||
margin-top: 0;
|
||||
}
|
||||
`;
|
||||
|
||||
const CommitteeContainer: React.FC<{
|
||||
committee: Committee;
|
||||
children: React.ReactNode;
|
||||
}> = ({ committee, children }) => (
|
||||
<Container>
|
||||
{committee.slug === "board" && (
|
||||
<BoardImage
|
||||
src="https://static.sahkoinsinoorikilta.fi/img/board/2026/Pota105_sikh26_webiin.jpg"
|
||||
alt="Hallitus 2026"
|
||||
/>
|
||||
)}
|
||||
<div>
|
||||
{committee.roles.map((role) => (
|
||||
role.representatives.map((representative) => (
|
||||
<ContactCard
|
||||
key={representative.name}
|
||||
name={representative.name}
|
||||
phone={representative.phone_number}
|
||||
email={representative.email}
|
||||
image={representative.image || blankProfile}
|
||||
role_fi={role.name_fi}
|
||||
role_en={role.name_en}
|
||||
/>
|
||||
))
|
||||
))}
|
||||
</div>
|
||||
{children}
|
||||
</Container>
|
||||
);
|
||||
|
||||
interface Committee {
|
||||
slug: string;
|
||||
name_fi: string;
|
||||
name_en: string;
|
||||
roles: Array<Role>;
|
||||
}
|
||||
|
||||
interface Role {
|
||||
name_fi: string;
|
||||
name_en: string;
|
||||
representatives: Array<Representative>
|
||||
}
|
||||
|
||||
interface Representative {
|
||||
name: string;
|
||||
phone_number?: string;
|
||||
email?: string;
|
||||
image?: string;
|
||||
}
|
||||
|
||||
const BoardPageView: React.FC = () => (
|
||||
<>
|
||||
<TextSection>
|
||||
<h1>Hallitus</h1>
|
||||
<div>
|
||||
<p>
|
||||
Tältä sivulta löydät killan hallituksen jäsenten yhteystiedot.
|
||||
</p>
|
||||
<p>
|
||||
{"Koko hallitukseen saa yhteyden lähettämällä sähköpostia osoitteeseen "}
|
||||
<BlueLink to="mailto:hallitus@sahkoinsinoorikilta.fi">
|
||||
hallitus@sahkoinsinoorikilta.fi
|
||||
</BlueLink>
|
||||
.
|
||||
</p>
|
||||
<p>
|
||||
Muut yhteystiedot löydät <Link to="/yhteystiedot">täältä.</Link>
|
||||
</p>
|
||||
<p>
|
||||
{"Hallitukselle voi myös lähettää palautetta täyttämällä "}
|
||||
<BlueLink to="https://docs.google.com/forms/d/e/1FAIpQLSeD8Hm66uvwr7Xa2WGgOCfI2RS1NrZsmISf2QBKUcJf_stv8g/viewform?usp=sf_link">
|
||||
palautelomakkeen
|
||||
</BlueLink>
|
||||
. Lomakkeen vastauksia käydään läpi hallituksen kokouksissa.
|
||||
</p>
|
||||
</div>
|
||||
</TextSection>
|
||||
<ContactContainer>
|
||||
{orderedCommittees.map((json) => (
|
||||
<React.Fragment key={json.slug}>
|
||||
<TextSection id={json.slug}>
|
||||
<CommitteeContainer committee={json}>
|
||||
{(json.slug === "board")}
|
||||
</CommitteeContainer>
|
||||
</TextSection>
|
||||
</React.Fragment>
|
||||
))}
|
||||
</ContactContainer>
|
||||
</>
|
||||
);
|
||||
|
||||
export default BoardPageView;
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"slug": "board",
|
||||
"name_fi": "Hallitus",
|
||||
"name_fi": "Hallitus 2026",
|
||||
"name_en": "Board",
|
||||
"roles": [
|
||||
{
|
||||
@@ -8,22 +8,22 @@
|
||||
"name_en": "Chairman of the Board",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Otto Julkunen",
|
||||
"name": "Sauli Hakala",
|
||||
"phone_number": null,
|
||||
"email": "otto.julkunen@sahkoinsinoorikilta.fi",
|
||||
"image": "https://static.sahkoinsinoorikilta.fi/img/board/ottom.jpg"
|
||||
"email": "sauli.hakala@sahkoinsinoorikilta.fi",
|
||||
"image": "https://static.sahkoinsinoorikilta.fi/img/board/2026/sauli.jpg"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Sihteeri",
|
||||
"name_en": "Secretary",
|
||||
"name_fi": "Varapuheenjohtaja",
|
||||
"name_en": "Vice Chair",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Karoliina Talvikangas",
|
||||
"name": "Eemeli Hintsanen",
|
||||
"phone_number": null,
|
||||
"email": "karoliina.talvikangas@sahkoinsinoorikilta.fi",
|
||||
"image": "https://static.sahkoinsinoorikilta.fi/img/board/karoliina.jpg"
|
||||
"email": "eemeli.hintsanen@sahkoinsinoorikilta.fi",
|
||||
"image": "https://static.sahkoinsinoorikilta.fi/img/board/2026/eemeli.jpg"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -32,22 +32,22 @@
|
||||
"name_en": "Treasurer",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Ville Lairila",
|
||||
"name": "Nea Kanerva",
|
||||
"phone_number": null,
|
||||
"email": "ville.lairila@sahkoinsinoorikilta.fi",
|
||||
"image": "https://static.sahkoinsinoorikilta.fi/img/board/ville.jpg"
|
||||
"email": "nea.kanerva@sahkoinsinoorikilta.fi",
|
||||
"image": "https://static.sahkoinsinoorikilta.fi/img/board/2026/nea.jpg"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Fuksitoimikunnan Puheenjohtaja",
|
||||
"name_fi": "Fuksitoimikunnan puheenjohtaja",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aaron Löfgren",
|
||||
"name": "Aura Friman",
|
||||
"phone_number": null,
|
||||
"email": "aaron.lofgren@sahkoinsinoorikilta.fi",
|
||||
"image": "https://static.sahkoinsinoorikilta.fi/img/board/aaron.jpg"
|
||||
"email": "aura.friman@sahkoinsinoorikilta.fi",
|
||||
"image": "https://static.sahkoinsinoorikilta.fi/img/board/2026/aura.jpg"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -56,10 +56,10 @@
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Kasper Skog",
|
||||
"name": "Antti Salpakari",
|
||||
"phone_number": null,
|
||||
"email": "kasper.skog@sahkoinsinoorikilta.fi",
|
||||
"image": "https://static.sahkoinsinoorikilta.fi/img/board/kasper.jpg"
|
||||
"email": "antti.salpakari@sahkoinsinoorikilta.fi",
|
||||
"image": "https://static.sahkoinsinoorikilta.fi/img/board/2026/antti.jpg"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -68,10 +68,10 @@
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Roni Vallius",
|
||||
"name": "Aino Saarela",
|
||||
"phone_number": null,
|
||||
"email": "roni.vallius@sahkoinsinoorikilta.fi",
|
||||
"image": "https://static.sahkoinsinoorikilta.fi/img/board/roni.jpg"
|
||||
"email": "aino.saarela@sahkoinsinoorikilta.fi",
|
||||
"image": "https://static.sahkoinsinoorikilta.fi/img/board/2026/aino_sa.jpg"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -80,10 +80,10 @@
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Elina Huttunen",
|
||||
"name": "Rosanna Reims",
|
||||
"phone_number": null,
|
||||
"email": "elina.huttunen@sahkoinsinoorikilta.fi",
|
||||
"image": "https://static.sahkoinsinoorikilta.fi/img/board/elina.jpg"
|
||||
"email": "rosanna.reims@sahkoinsinoorikilta.fi",
|
||||
"image": "https://static.sahkoinsinoorikilta.fi/img/board/2026/rosanna.jpg"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -92,10 +92,10 @@
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Julia Pykälä-aho",
|
||||
"name": "Valentin Juhela",
|
||||
"phone_number": null,
|
||||
"email": "julia.pykalaaho@sahkoinsinoorikilta.fi",
|
||||
"image": "https://static.sahkoinsinoorikilta.fi/img/board/julia.jpg"
|
||||
"email": "valentin.juhela@sahkoinsinoorikilta.fi",
|
||||
"image": "https://static.sahkoinsinoorikilta.fi/img/board/2026/valentin.jpg"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -104,34 +104,34 @@
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Juulia Härkönen",
|
||||
"name": "Elida Widgren",
|
||||
"phone_number": null,
|
||||
"email": "juulia.harkonen@sahkoinsinoorikilta.fi",
|
||||
"image": "https://static.sahkoinsinoorikilta.fi/img/board/juulia.jpg"
|
||||
"email": "elida.widgren@sahkoinsinoorikilta.fi",
|
||||
"image": "https://static.sahkoinsinoorikilta.fi/img/board/2026/elida.jpg"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Pajamestari",
|
||||
"name_fi": "Teknologiamestari",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Tommi Sytelä",
|
||||
"name": "Joona Maaranen",
|
||||
"phone_number": null,
|
||||
"email": "tommi.sytela@sahkoinsinoorikilta.fi",
|
||||
"image": "https://static.sahkoinsinoorikilta.fi/img/board/tommi.jpg"
|
||||
"email": "joona.maaranen@sahkoinsinoorikilta.fi",
|
||||
"image": "https://static.sahkoinsinoorikilta.fi/img/board/2026/joona.jpg"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Ulkomestari",
|
||||
"name_fi": "KV-fuksikapteeni",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Pyry Vaara",
|
||||
"name": "Jere Oinonen",
|
||||
"phone_number": null,
|
||||
"email": "pyry.vaara@sahkoinsinoorikilta.fi",
|
||||
"image": "https://static.sahkoinsinoorikilta.fi/img/board/pyry.jpg"
|
||||
"email": "jere.oinonen@sahkoinsinoorikilta.fi",
|
||||
"image": "https://static.sahkoinsinoorikilta.fi/img/board/2026/jere.jpg"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -140,22 +140,22 @@
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Nette Levijoki",
|
||||
"name": "Into Saarinen",
|
||||
"phone_number": null,
|
||||
"email": "nette.levijoki@sahkoinsinoorikilta.fi",
|
||||
"image": "https://static.sahkoinsinoorikilta.fi/img/board/nette.jpg"
|
||||
"email": "into.saarinen@sahkoinsinoorikilta.fi",
|
||||
"image": "https://static.sahkoinsinoorikilta.fi/img/board/2026/into.jpg"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Excursiomestari",
|
||||
"name_fi": "Viestintämestari",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Visa Kurvi",
|
||||
"name": "Aino Svahn",
|
||||
"phone_number": null,
|
||||
"email": "visa.kurvi@sahkoinsinoorikilta.fi",
|
||||
"image": "https://static.sahkoinsinoorikilta.fi/img/board/visa.jpg"
|
||||
"email": "aino.svahn@sahkoinsinoorikilta.fi",
|
||||
"image": "https://static.sahkoinsinoorikilta.fi/img/board/2026/aino_sv.jpg"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,218 @@
|
||||
import React from "react";
|
||||
import styled from "styled-components";
|
||||
import { Divider, TextSection, Link } from "@components/index";
|
||||
import colors from "@theme/colors";
|
||||
import ContactCard from "@components/ContactCard";
|
||||
|
||||
import FtmkJson from "./ftmk.json";
|
||||
import HtmkJson from "./htmk.json";
|
||||
import HvtmkJson from "./hvtmk.json";
|
||||
import MtmkJson from "./mtmk.json";
|
||||
import OptmkJson from "./optmk.json";
|
||||
import NtmkJson from "./ntmk.json";
|
||||
import PtmkJson from "./ptmk.json";
|
||||
import TtmkJson from "./ttmk.json";
|
||||
import YtmkJson from "./ytmk.json";
|
||||
import SwtmkJson from "./swtmk.json";
|
||||
import VtmkJson from "./vtmk.json";
|
||||
import LtmkJson from "./ltmk.json";
|
||||
import SiccJson from "./sicc.json";
|
||||
import SptmkJson from "./sptmk.json";
|
||||
import PotatmkJson from "./potatmk.json";
|
||||
import Others from "./others.json";
|
||||
|
||||
const orderedCommittees = [
|
||||
FtmkJson,
|
||||
HtmkJson,
|
||||
LtmkJson,
|
||||
HvtmkJson,
|
||||
MtmkJson,
|
||||
OptmkJson,
|
||||
YtmkJson,
|
||||
TtmkJson,
|
||||
PtmkJson,
|
||||
VtmkJson,
|
||||
SwtmkJson,
|
||||
NtmkJson,
|
||||
SiccJson,
|
||||
SptmkJson,
|
||||
PotatmkJson,
|
||||
Others,
|
||||
];
|
||||
|
||||
const BlueLink = styled(Link)`
|
||||
color: ${colors.blue1};
|
||||
|
||||
&:hover {
|
||||
color: ${colors.lightBlue};
|
||||
}
|
||||
`;
|
||||
|
||||
const IndexUL = styled.ul`
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
|
||||
li::before {
|
||||
content: attr(data-icon);
|
||||
margin-right: 4px;
|
||||
}
|
||||
`;
|
||||
|
||||
const Index: React.FC<{ committees: typeof orderedCommittees }> = ({ committees }) => (
|
||||
<IndexUL>
|
||||
{committees.map(({ slug, name_fi }) => (
|
||||
<BlueLink to={`#${slug}`} key={slug}>
|
||||
<li data-icon="»">
|
||||
{name_fi}
|
||||
</li>
|
||||
</BlueLink>
|
||||
))}
|
||||
</IndexUL>
|
||||
);
|
||||
|
||||
const Container = styled.div`
|
||||
color: ${colors.darkBlue};
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 50vw;
|
||||
|
||||
& > h2 {
|
||||
text-transform: uppercase;
|
||||
font-size: 4rem;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
& > div {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
}
|
||||
|
||||
@media (max-width: 950px) {
|
||||
width: 100vw;
|
||||
}
|
||||
`;
|
||||
|
||||
const ContactContainer = styled.div`
|
||||
overflow-x: hidden;
|
||||
@media (max-width: 950px) {
|
||||
margin-top: 0;
|
||||
}
|
||||
`;
|
||||
|
||||
const TitleContainer = styled.div`
|
||||
display: flex;
|
||||
width: 100%;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 10px 10px;
|
||||
flex-direction: column;
|
||||
margin: auto;
|
||||
`;
|
||||
|
||||
const CommitteeContainer: React.FC<{
|
||||
committee: Committee;
|
||||
children: React.ReactNode;
|
||||
}> = ({ committee, children }) => (
|
||||
<Container>
|
||||
<TitleContainer>
|
||||
<h2>
|
||||
{committee.name_fi || committee.name_en}
|
||||
</h2>
|
||||
</TitleContainer>
|
||||
<p>
|
||||
{committee.info}
|
||||
</p>
|
||||
<div>
|
||||
{committee.roles.map((role) => (
|
||||
role.representatives.map((representative) => (
|
||||
<ContactCard
|
||||
key={representative.name}
|
||||
name={representative.name}
|
||||
phone={representative.phone_number}
|
||||
email={representative.email}
|
||||
image={null}
|
||||
role_fi={role.name_fi}
|
||||
role_en={role.name_en}
|
||||
/>
|
||||
))
|
||||
))}
|
||||
</div>
|
||||
{children}
|
||||
</Container>
|
||||
);
|
||||
|
||||
interface Committee {
|
||||
name_fi: string;
|
||||
name_en: string;
|
||||
info: string;
|
||||
roles: Array<Role>;
|
||||
}
|
||||
|
||||
interface Role {
|
||||
name_fi: string;
|
||||
name_en: string;
|
||||
representatives: Array<Representative>
|
||||
}
|
||||
|
||||
interface Representative {
|
||||
name: string;
|
||||
phone_number?: string;
|
||||
email?: string;
|
||||
image?: string;
|
||||
}
|
||||
|
||||
const CommitteePageView: React.FC = () => (
|
||||
<>
|
||||
<TextSection>
|
||||
<h1>Toimihenkilöt</h1>
|
||||
<p>
|
||||
Tältä sivulta löytyvät killan toimihenkilöt sekä lyhyet kuvaukset toimikunnista.
|
||||
<br />
|
||||
<br />
|
||||
Toimihenkilöiden sähköpostiosoitteet ovat muotoa etunimi.sukunimi@sahkoinsinoorikilta.fi.
|
||||
</p>
|
||||
<aside>
|
||||
<div>
|
||||
<h6>Toimikuntaluettelo</h6>
|
||||
<Index committees={orderedCommittees} />
|
||||
</div>
|
||||
</aside>
|
||||
</TextSection>
|
||||
<ContactContainer>
|
||||
{orderedCommittees.map((json) => (
|
||||
<React.Fragment key={json.slug}>
|
||||
{(json.slug !== "board") && (
|
||||
<Divider />
|
||||
)}
|
||||
<TextSection id={json.slug}>
|
||||
<CommitteeContainer committee={json}>
|
||||
{(json.slug === "board") && (
|
||||
<div>
|
||||
<p>
|
||||
{"Koko hallitukseen saa yhteyden lähettämällä sähköpostia osoitteeseen "}
|
||||
<BlueLink to="mailto:hallitus@sahkoinsinoorikilta.fi">
|
||||
hallitus@sahkoinsinoorikilta.fi
|
||||
</BlueLink>
|
||||
.
|
||||
</p>
|
||||
<p>
|
||||
{"Hallitukselle voi myös lähettää palautetta täyttämällä "}
|
||||
<BlueLink to="https://docs.google.com/forms/d/e/1FAIpQLSeD8Hm66uvwr7Xa2WGgOCfI2RS1NrZsmISf2QBKUcJf_stv8g/viewform?usp=sf_link">
|
||||
palautelomakkeen
|
||||
</BlueLink>
|
||||
. Lomakkeen vastauksia käydään läpi hallituksen kokouksissa.
|
||||
</p>
|
||||
<p>
|
||||
Toimihenkilöiden sähköpostiosoitteet ovat muotoa etunimi.sukunimi@sahkoinsinoorikilta.fi.
|
||||
</p>
|
||||
</div>
|
||||
)}
|
||||
</CommitteeContainer>
|
||||
</TextSection>
|
||||
</React.Fragment>
|
||||
))}
|
||||
</ContactContainer>
|
||||
</>
|
||||
);
|
||||
|
||||
export default CommitteePageView;
|
||||
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"slug": "ftmk",
|
||||
"name_fi": "Fuksitoimikunta",
|
||||
"name_en": "",
|
||||
"info": "Fuksitoimikuntaan kuuluu fuksikapteenit, KV-kapteenit, ISOvastaava sekä KV-ISOvastaava. Fuksitoimikunta huolehtii fukseista ja fukseille annettavasta fuksikasvatuksesta. ISOvastaava ja KV-ISOvastaava ovat taas vastuussa killan ISOhenkilöistä ja heidän ohjaamisestaan.",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "Fuksitoimikunnan puheenjohtaja",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aura Friman"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Fuksitoimikunnan puheenjohtajan adjutantti",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Antti Salpakari"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "KV-fuksikapteeni",
|
||||
"name_en": "International Fuksi Captain",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Jere Oinonen"
|
||||
},
|
||||
{
|
||||
"name": "Hocine Montenez"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "ISOvastaava",
|
||||
"name_en": "Tutor Coordinator",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Veera Lindroos"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "KV-ISOvastaava",
|
||||
"name_en": "International Tutor Coordinator",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Janne Yrjölä"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"slug": "htmk",
|
||||
"name_fi": "Hupitoimikunta",
|
||||
"name_en": "Entertainment Committee",
|
||||
"info": "Hupitoimikunta järjestää päätoimenaan kaikenkirjavia tapahtumia, kuten sitsejä, saunailtoja sekä muita juhlia. Hupitoimikuntaa johtaa Hovimestari ja Hovineuvos. Toimikunnassa toimii Hovin lisäksi emäntiä ja isäntiä, jotka hoitavat juhlien käytännön järjestelyjä, esimerkiksi ruoanlaiton, kattauksen ja tarjoilun Hovin johdolla.",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "Hovimestari",
|
||||
"name_en": "Master of Ceremonies",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aino Saarela"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Hovineuvos",
|
||||
"name_en": "Court Counsellor",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Rosanna Reims"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Emäntä",
|
||||
"name_en": "Hostess",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Elina Pyylampi"
|
||||
},
|
||||
{
|
||||
"name": "Elle Leivo"
|
||||
},
|
||||
{
|
||||
"name": "Emma Salmenaho"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Isäntä",
|
||||
"name_en": "Host",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aleksi Nuutinen"
|
||||
},
|
||||
{
|
||||
"name": "Juho Rosnell"
|
||||
},
|
||||
{
|
||||
"name": "Julius Härkönen"
|
||||
},
|
||||
{
|
||||
"name": "Joonas Hilvo"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,101 @@
|
||||
{
|
||||
"slug": "hvtmk",
|
||||
"name_fi": "Hyvinvointitoimikunta",
|
||||
"name_en": "Committee of Wellbeing",
|
||||
"info": "Hyvinvointitoimikunta järjestää monipuolisesti kiltalaisten hyvinvointia edistävää hyvän mielen toimintaa. Toimikunta koostuu liikunta-, retkeily-, kulttuuri- ja kiltahuonevastaavista, ja toimikuntaa johtaa hyvinvointimestari.",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "Hyvinvointimestari",
|
||||
"name_en": "Master of Wellbeing",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Valentin Juhela"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Kulttuurivastaava",
|
||||
"name_en": "Culture Representative",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Johannes Viirimäki"
|
||||
},
|
||||
{
|
||||
"name": "Linnea Viitasalo"
|
||||
},
|
||||
{
|
||||
"name": "Matilda Ahonen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Liikuntavastaava",
|
||||
"name_en": "Sports Representative",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aino Salmi"
|
||||
},
|
||||
{
|
||||
"name": "Eeda Alasaari"
|
||||
},
|
||||
{
|
||||
"name": "Iiris Kuulusa"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Kiltahuonevastaava",
|
||||
"name_en": "Guild Room Representative",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Milja Kuusela"
|
||||
},
|
||||
{
|
||||
"name": "Tuomas Rantamäki"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Retkeilyvastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Arvi Virkkunen"
|
||||
},
|
||||
{
|
||||
"name": "Auli Purolinna"
|
||||
},
|
||||
{
|
||||
"name": "Ville Lairila"
|
||||
},
|
||||
{
|
||||
"name": "Tiitus Koski"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Yhdenvertaisuusvastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Teemu Heikkinen"
|
||||
},
|
||||
{
|
||||
"name": "Aaron Löfgren"
|
||||
},
|
||||
{
|
||||
"name": "Matilda Ahonen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Kiltamuori",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Markus Aaltio"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"slug": "ltmk",
|
||||
"name_fi": "Lukkaritoimikunta",
|
||||
"name_en": "",
|
||||
"info": "Lukkaritoimikunta on vastuussa killan laulukulttuurin kehittämisestä sekä ylläpitämisestä. Toimikunnan muodostaa lukkarimestari, lukkarit sekä lukkarikisällit. Meidät tapaat sitseillä sekä muissa tapahtumissa muistuttamassa, että teekkari laulaa mieluummin kuin hyvin.",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "Lukkarimestari",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aino Salmi"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Lukkari",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Alex Hyytinen"
|
||||
},
|
||||
{
|
||||
"name": "Ilmari Reponen"
|
||||
},
|
||||
{
|
||||
"name": "Iiris Kuulusa"
|
||||
},
|
||||
{
|
||||
"name": "Samuel Södervall"
|
||||
},
|
||||
{
|
||||
"name": "Tapio Immonen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Lukkarikisälli",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aapo Palojärvi"
|
||||
},
|
||||
{
|
||||
"name": "André Palosaari"
|
||||
},
|
||||
{
|
||||
"name": "Kaisa Lehtimäki"
|
||||
},
|
||||
{
|
||||
"name": "Olav Hamel"
|
||||
},
|
||||
{
|
||||
"name": "Otto Tuominen"
|
||||
},
|
||||
{
|
||||
"name": "Panu Leinonen"
|
||||
},
|
||||
{
|
||||
"name": "Terhi Lukkari"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
{
|
||||
"slug": "mtmk",
|
||||
"name_fi": "Sössö-toimikunta",
|
||||
"name_en": "Media Committee",
|
||||
"info": "Sössö-toimikunta toimittaa Sössöä, Sähköinsinöörikillan ikiomaa lehteä, joka on ikänsä ja laatunsa puolesta Otaniemen eliittiä. Toimikunta julkaisee vuodessa kaksi painettua lehteä sekä lukuisia nettiartikkeleita ynnä muuta. Toimikunta hoitaa lisäksi myös valokuvat ja live-striimit.",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "Päätoimittaja",
|
||||
"name_en": "Editor in Chief",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Joona Komonen",
|
||||
"phone_number": null,
|
||||
"email": null,
|
||||
"image": null
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Tyhjäntoimittaja",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Topi Manskinen",
|
||||
"phone_number": null,
|
||||
"email": null,
|
||||
"image": null
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Toimittaja",
|
||||
"name_en": "Journalist",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aake Laukkanen"
|
||||
},
|
||||
{
|
||||
"name": "Alex Hyytinen"
|
||||
},
|
||||
{
|
||||
"name": "Apollo Ailus"
|
||||
},
|
||||
{
|
||||
"name": "Eetu Tossavainen"
|
||||
},
|
||||
{
|
||||
"name": "Jenni Marttinen"
|
||||
},
|
||||
{
|
||||
"name": "Juho Laukka"
|
||||
},
|
||||
{
|
||||
"name": "Lauri Anttila"
|
||||
},
|
||||
{
|
||||
"name": "Otto kievimaa"
|
||||
},
|
||||
{
|
||||
"name": "Sampo Haarala"
|
||||
},
|
||||
{
|
||||
"name": "Venla Nikkanen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Taittaja",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Atte Vitie"
|
||||
},
|
||||
{
|
||||
"name": "Lauri Anttila"
|
||||
},
|
||||
{
|
||||
"name": "Otto Kievimaa"
|
||||
},
|
||||
{
|
||||
"name": "Partrik Varteva"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Graafikko",
|
||||
"name_en": "Photographer & Graphic Artist",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Annika Tattari"
|
||||
},
|
||||
{
|
||||
"name": "Elian Salmimaa"
|
||||
},
|
||||
{
|
||||
"name": "Lotta Kähönen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Heevistriimaaja",
|
||||
"name_en": "Heevistreamer",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aaro Rasilainen"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"slug": "ntmk",
|
||||
"name_fi": "N-Toimikunta",
|
||||
"name_en": "",
|
||||
"info": "N-toimikunta järjestää erinäisiä tapahtumia vanhemmille ja vanhemmanmielisille kiltalaisille, kuten sitsejä, aftereita, ulkoilutapahtumia ja mitä ikinä keksitäänkään. N-toimikunta toimii myös matalan kynnyksen välinä Sklubiin, eli alumniyhdistykseemme. N-toimikuntaan kuuluu myös killan kiltapatruunat, jotka pitävät huolta killan jatkuvuudesta.",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "N-toimikunnan puheenjohtaja",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Elina Huttunen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "N-toimikunnan Varapuheenjohtaja",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Ville Lairila"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Kiltapatruuna",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aaron Löfgren"
|
||||
},
|
||||
{
|
||||
"name": "Axel Aurola"
|
||||
},
|
||||
{
|
||||
"name": "Emma Uusküla"
|
||||
},
|
||||
{
|
||||
"name": "Johannes Viirimäki"
|
||||
},
|
||||
{
|
||||
"name": "Tuomas Rantamäki"
|
||||
},
|
||||
{
|
||||
"name": "Yassine Ramid"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "N-vastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aaron Löfgren"
|
||||
},
|
||||
{
|
||||
"name": "Aleksi Saajakari"
|
||||
},
|
||||
{
|
||||
"name": "Elian Salmimaa"
|
||||
},
|
||||
{
|
||||
"name": "Johannes Viirimäki"
|
||||
},
|
||||
{
|
||||
"name": "Karoliina Talvikangas"
|
||||
},
|
||||
{
|
||||
"name": "Markus Aaltio"
|
||||
},
|
||||
{
|
||||
"name": "Miika Helminen"
|
||||
},
|
||||
{
|
||||
"name": "Mikael Siikonen"
|
||||
},
|
||||
{
|
||||
"name": "Peter Lindahl"
|
||||
},
|
||||
{
|
||||
"name": "Veikko Räty"
|
||||
},
|
||||
{
|
||||
"name": "Verneri Turkki"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"slug": "optmk",
|
||||
"name_fi": "Opintotoimikunta",
|
||||
"name_en": "Study Committee",
|
||||
"info": "Opintotoimikunta vastaa edunvalvonnasta, killan tekemästä abimarkkinoinnista, sekä pitää yhteyttä korkeakoulun henkilökuntaan. Toimikunta järjestää opintoihin liittyviä tapahtumia, kuten opintosaunoja. Tomikunta koostuu opintomestarista ja opintovastaavista.",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "Opintomestari",
|
||||
"name_en": "Master of Studies",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Elida Widgren"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Opintovastaava",
|
||||
"name_en": "Study Coordinator",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aapo Tynninen"
|
||||
},
|
||||
{
|
||||
"name": "Aleksi Liukkonen"
|
||||
},
|
||||
{
|
||||
"name": "Antti Lehtonen"
|
||||
},
|
||||
{
|
||||
"name": "Atu Vahla"
|
||||
},
|
||||
{
|
||||
"name": "Iiris Kuulusa"
|
||||
},
|
||||
{
|
||||
"name": "Ilmari Reponen"
|
||||
},
|
||||
{
|
||||
"name": "Jesper Seppäläinen"
|
||||
},
|
||||
{
|
||||
"name": "Mikael Vatiainen"
|
||||
},
|
||||
{
|
||||
"name": "Vi Tam"
|
||||
},
|
||||
{
|
||||
"name": "Yassine Ramid"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"slug": "others",
|
||||
"name_fi": "Muut",
|
||||
"name_en": "Other officials",
|
||||
"info": "",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "Arkistovastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aaron Löfgren",
|
||||
"phone_number": null,
|
||||
"email": null
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Sklubi-yhdyshenkilö",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Ville Kurko",
|
||||
"phone_number": null,
|
||||
"email": null
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Teekkarikokousen kiltaedustaja",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aaron Löfgren",
|
||||
"phone_number": null,
|
||||
"email": null
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "TEK-yhdyshenkilö",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Visa Kurvi",
|
||||
"phone_number": null,
|
||||
"email": null
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
{
|
||||
"slug": "potatmk",
|
||||
"name_fi": "Potentiaalin Tasaus 105-toimikunta",
|
||||
"name_en": "",
|
||||
"info": "Killan vuosijuhlat",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "PoTa-tirehtööri",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Axel Aurola"
|
||||
},
|
||||
{
|
||||
"name": "Karoliina Talvikangas"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Kukkohäntävastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Antti Salpakari"
|
||||
},
|
||||
{
|
||||
"name": "Tuomas Rantamäki"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Seremoniamestari",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Henri Aito"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Jatkovastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aino Tasapuro"
|
||||
},
|
||||
{
|
||||
"name": "Eemeli Hintsanen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Koristeluvastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Elina Huttunen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Sillisvastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Leevi Oikarinen"
|
||||
},
|
||||
{
|
||||
"name": "Valentin Juhela"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Graafikko",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Elian Salmimaa"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"slug": "ptmk",
|
||||
"name_fi": "Pajatoimikunta",
|
||||
"name_en": "",
|
||||
"info": "Pajatoimikunta vastaa killan oman elektroniikkapajan eli SIK-pajan ylläpidosta ja kehityksestä. Toimikuntaa johtaa pajamestari ja toimikunta koostuu pajavastaavista ja pajakisälleistä.",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "Pajamestari",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Simeon Pursiainen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Pajavastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Axel Söderberg"
|
||||
},
|
||||
{
|
||||
"name": "Đình Minh Trần"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Pajakisälli",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aapo Tynninen"
|
||||
},
|
||||
{
|
||||
"name": "Aarni Kämppi"
|
||||
},
|
||||
{
|
||||
"name": "Atte Elo"
|
||||
},
|
||||
{
|
||||
"name": "Emma Uusküla"
|
||||
},
|
||||
{
|
||||
"name": "Jusi Seppälä"
|
||||
},
|
||||
{
|
||||
"name": "Tuomas Rantamäki"
|
||||
},
|
||||
{
|
||||
"name": "Vi Tam"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"slug": "sicc",
|
||||
"name_fi": "SIK International Committee Council",
|
||||
"name_en": "SIK International Committee Council",
|
||||
"info": "*coming soon*",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "International Ambassador",
|
||||
"name_en": "International Ambassador",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Igor Oinonen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "International Attaché",
|
||||
"name_en": "International Attaché",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Kuura Janhunen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "International Envoy",
|
||||
"name_en": "International Envoy",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aleksanteri Vesala"
|
||||
},
|
||||
{
|
||||
"name": "Apollo Ailus"
|
||||
},
|
||||
{
|
||||
"name": "Juho Aikio"
|
||||
},
|
||||
{
|
||||
"name": "Léo Di Poi"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"slug": "sptmk",
|
||||
"name_fi": "Sähköpäivätoimikunta",
|
||||
"name_en": "",
|
||||
"info": "",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "Sähköpäivätirehtööri",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aino Tasapuro"
|
||||
},
|
||||
{
|
||||
"name": "Matilda Ahonen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Sähköpäivävastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aapo Nyyssönen"
|
||||
},
|
||||
{
|
||||
"name": "Aapo Saranpää"
|
||||
},
|
||||
{
|
||||
"name": "André Palosaari"
|
||||
},
|
||||
{
|
||||
"name": "Ilmari Reponen"
|
||||
},
|
||||
{
|
||||
"name": "Oliver Hannula"
|
||||
},
|
||||
{
|
||||
"name": "Teemu Heikkinen"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"slug": "swtmk",
|
||||
"name_fi": "SIKin Wapaa-aika -toimikunta",
|
||||
"name_en": "",
|
||||
"info": "Sikin Wapaa-aika -toimikunta eli tuttavallisemmin SiWa on killan uusin toimikunta. Toimikunnan tavoitteena on järjestää monipuolisesti erilaisia hassunhauskoja matalan kynnyksen tapahtumia kiltalaisille laidasta laitaan. Esimerkkejä SiWan tapahtumista ovat mm. wappulautta, pitsapäivä ja pokeriturnaus.",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "Myymäläpäällikkö",
|
||||
"name_en": "Head of sales",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Leevi Oikarinen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Myyjä",
|
||||
"name_en": "Clerk",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Alexandr Lemin"
|
||||
},
|
||||
{
|
||||
"name": "Henri Aito"
|
||||
},
|
||||
{
|
||||
"name": "Ossi Jalkanen"
|
||||
},
|
||||
{
|
||||
"name": "Tiitus Koski"
|
||||
},
|
||||
{
|
||||
"name": "Veikko Räty"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Kiltapäiväkerhovastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Matilda Ahonen"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"slug": "ttmk",
|
||||
"name_fi": "Teknologiatoimikunta",
|
||||
"name_en": "Technology Committee",
|
||||
"info": "Teknologiatoimikunta huolehtii killan tekniikan toiminnasta. Toimikunnan vastuulle kuuluu killan tietojärjestelmien ylläpito ja kehitys sekä viestintäkanavien toimivuudesta huolehtiminen. Toimikunta koostuu teknologiamestarista ja teknologiavastaavista.",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "Teknologiamestari",
|
||||
"name_en": "Master of technology",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Joona Maaranen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Teknologiavastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Alekdsandr Lemin"
|
||||
},
|
||||
{
|
||||
"name": "Atte Elo"
|
||||
},
|
||||
{
|
||||
"name": "Dat Tram"
|
||||
},
|
||||
{
|
||||
"name": "Oiva Haapaniemi"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
{
|
||||
"slug": "vtmk",
|
||||
"name_fi": "Viestintätoimikunta",
|
||||
"name_en": "Communications Committee",
|
||||
"info": "Viestintätoimikunta huolehtii kiltalaisten tiedottamisesta, tuottaa sisältöä killan sosiaalisen median kanaviin ja suunnittelee killan myyntituotteita. Toimikuntaa johtaa killan viestintämestari ja toimikunta koostuu somevastaavista, brändivastaavista sekä videokuvaajista.",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "Viestintämestari",
|
||||
"name_en": "Head of communcations",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aino Svahn"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Somevastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aada Tättilä"
|
||||
},
|
||||
{
|
||||
"name": "Ada Minkkinen"
|
||||
},
|
||||
{
|
||||
"name": "Aino Tasapuro"
|
||||
},
|
||||
{
|
||||
"name": "Ira Kosunen"
|
||||
},
|
||||
{
|
||||
"name": "Lukas Iles"
|
||||
},
|
||||
{
|
||||
"name": "Tytti Solonen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Brändivastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aapo Saranpää"
|
||||
},
|
||||
{
|
||||
"name": "Aapo Nyyssönen"
|
||||
},
|
||||
{
|
||||
"name": "Kehrä Halme"
|
||||
}
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Videokuvaaja",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Apollo Ailus"
|
||||
},
|
||||
{
|
||||
"name": "Julius Männistö"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Valokuvaaja",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aaro Rasilainen"
|
||||
},
|
||||
{
|
||||
"name": "Apollo Ailus"
|
||||
},
|
||||
{
|
||||
"name": "Arvi Virkkunen"
|
||||
},
|
||||
{
|
||||
"name": "Julius Männistö"
|
||||
},
|
||||
{
|
||||
"name": "Lotta Kähönen"
|
||||
},
|
||||
{
|
||||
"name": "Veikko Räty"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"slug": "ytmk",
|
||||
"name_fi": "Yrityssuhdetoimikunta",
|
||||
"name_en": "Corporate Relations Committee",
|
||||
"info": "Yrityssuhdetoimikunta toimii linkkinä yritysmaailman ja Sähköinsinöörikillan välillä. Toimikunnan tehtäviin kuuluu esimerkiksi excursioiden eli yritysvierailujen järjestäminen, yrityssaunailtojen ja muiden yhteistyösopimuksilla rahoitettujen tapahtumien järjestäminen, sekä sponsoreiden hankinta Sähköinsinöörikillan puhtaanvalkoisiin haalareihin. Lisäksi yrityssuhdetoimikunnan vastuulla on ulkosuhteiden ylläpito ystävyysainejärjestöihin kotimaassa ja ulkomailla.",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "Yrityssuhdemestari",
|
||||
"name_en": "Head of Corporate Relations",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Into Saarinen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Yrityssuhdeguru",
|
||||
"name_en": "Guru of yritysuhde",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Tuomas Hintikka"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Excursiomestari",
|
||||
"name_en": "Head of Excursions",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Roope Palo"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Yrityssuhde- ja excursiovastaava",
|
||||
"name_en": "Apprentice of Corporate Relations",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Axel Aurola"
|
||||
},
|
||||
{
|
||||
"name": "Mikael Sundell"
|
||||
},
|
||||
{
|
||||
"name": "Kaisa Lehtimäki"
|
||||
},
|
||||
{
|
||||
"name": "Timo Kaleva"
|
||||
},
|
||||
{
|
||||
"name": "Väinö Saarinen"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,208 +1,35 @@
|
||||
import React from "react";
|
||||
import styled from "styled-components";
|
||||
import { Divider, TextSection, Link } from "@components/index";
|
||||
import colors from "@theme/colors";
|
||||
import ContactCard from "@components/ContactCard";
|
||||
|
||||
import BoardJson from "./board.json";
|
||||
// import HvtmkJson from "./hvtmk.json";
|
||||
// import MtmkJson from "./mtmk.json";
|
||||
// import NtmkJson from "./ntmk.json";
|
||||
// import OptmkJson from "./optmk.json";
|
||||
// import OtmkJson from "./otmk.json";
|
||||
// import EPtmkJson from "./eptmk.json";
|
||||
// import SstmkJson from "./sstmk.json";
|
||||
// import ShntmkJson from "./shntmk.json";
|
||||
// import ShtmkJson from "./shtmk.json";
|
||||
// import TtmkJson from "./ttmk.json";
|
||||
// import UtmkJson from "./utmk.json";
|
||||
// import YtmkJson from "./ytmk.json";
|
||||
// import Others from "./others.json";
|
||||
|
||||
const orderedCommittees = [
|
||||
BoardJson,
|
||||
// HvtmkJson,
|
||||
// MtmkJson,
|
||||
// NtmkJson,
|
||||
// OptmkJson,
|
||||
// OtmkJson,
|
||||
// EPtmkJson,
|
||||
// SstmkJson,
|
||||
// ShntmkJson,
|
||||
// ShtmkJson,
|
||||
// TtmkJson,
|
||||
// UtmkJson,
|
||||
// YtmkJson,
|
||||
// Others,
|
||||
];
|
||||
|
||||
const blankProfile = "/img/blank_profile.png";
|
||||
|
||||
const BlueLink = styled(Link)`
|
||||
color: ${colors.blue1};
|
||||
|
||||
&:hover {
|
||||
color: ${colors.lightBlue};
|
||||
}
|
||||
`;
|
||||
|
||||
const IndexUL = styled.ul`
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
|
||||
li::before {
|
||||
content: attr(data-icon);
|
||||
margin-right: 4px;
|
||||
}
|
||||
`;
|
||||
|
||||
const Index: React.FC<{ committees: typeof orderedCommittees }> = ({ committees }) => (
|
||||
<IndexUL>
|
||||
{committees.map(({ slug, name_fi }) => (
|
||||
<BlueLink to={`#${slug}`} key={slug}>
|
||||
<li data-icon="»">
|
||||
{name_fi}
|
||||
</li>
|
||||
</BlueLink>
|
||||
))}
|
||||
</IndexUL>
|
||||
);
|
||||
|
||||
const Container = styled.div`
|
||||
color: ${colors.darkBlue};
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 50vw;
|
||||
|
||||
& > h2 {
|
||||
text-transform: uppercase;
|
||||
font-size: 4rem;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
& > div {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
}
|
||||
|
||||
@media (max-width: 950px) {
|
||||
width: 100vw;
|
||||
}
|
||||
`;
|
||||
|
||||
const ContactContainer = styled.div`
|
||||
overflow-x: hidden;
|
||||
@media (max-width: 950px) {
|
||||
margin-top: 0;
|
||||
}
|
||||
`;
|
||||
|
||||
const TitleContainer = styled.div`
|
||||
display: flex;
|
||||
width: 100%;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 10px 10px;
|
||||
flex-direction: column;
|
||||
margin: auto;
|
||||
`;
|
||||
|
||||
const CommitteeContainer: React.FC<{
|
||||
committee: Committee;
|
||||
children: React.ReactNode;
|
||||
}> = ({ committee, children }) => (
|
||||
<Container>
|
||||
<TitleContainer>
|
||||
<h2>
|
||||
{committee.name_fi || committee.name_en}
|
||||
</h2>
|
||||
</TitleContainer>
|
||||
<div>
|
||||
{committee.roles.map((role) => (
|
||||
role.representatives.map((representative) => (
|
||||
<ContactCard
|
||||
key={representative.name}
|
||||
name={representative.name}
|
||||
phone={representative.phone_number}
|
||||
email={representative.email}
|
||||
image={(committee.name_en === "Board") ? (representative.image || blankProfile) : null}
|
||||
role_fi={role.name_fi}
|
||||
role_en={role.name_en}
|
||||
/>
|
||||
))
|
||||
))}
|
||||
</div>
|
||||
{children}
|
||||
</Container>
|
||||
);
|
||||
|
||||
interface Committee {
|
||||
name_fi: string;
|
||||
name_en: string;
|
||||
roles: Array<Role>;
|
||||
}
|
||||
|
||||
interface Role {
|
||||
name_fi: string;
|
||||
name_en: string;
|
||||
representatives: Array<Representative>
|
||||
}
|
||||
|
||||
interface Representative {
|
||||
name: string;
|
||||
phone_number?: string;
|
||||
email?: string;
|
||||
image?: string;
|
||||
}
|
||||
import { TextSection, Link } from "@components/index";
|
||||
|
||||
const ContactsPageView: React.FC = () => (
|
||||
<>
|
||||
<TextSection>
|
||||
<h1>Yhteystiedot</h1>
|
||||
<TextSection>
|
||||
<h1>Yhteystiedot</h1>
|
||||
<div>
|
||||
<h6>Hallitus</h6>
|
||||
<p>
|
||||
Asiaa olisi, mutta kehen ottaa yhteyttä?
|
||||
<br />
|
||||
Tämä sivu yrittää valottaa sen oikean ihmisen puhelinnumeroa ja sähköpostiosoitetta.
|
||||
Koko hallitukseen saat yhteyden osoitteesta hallitus@sahkoinsinoorikilta.fi.
|
||||
Yksittäisten hallituksen jäsenten yhteystiedot löydät <Link to="/kilta/hallitus">täältä.</Link>
|
||||
</p>
|
||||
<aside>
|
||||
<div>
|
||||
<h6>Toimikuntaluettelo</h6>
|
||||
<Index committees={orderedCommittees} />
|
||||
</div>
|
||||
</aside>
|
||||
</TextSection>
|
||||
<ContactContainer>
|
||||
{orderedCommittees.map((json) => (
|
||||
<React.Fragment key={json.slug}>
|
||||
{(json.slug !== "board") && (
|
||||
<Divider />
|
||||
)}
|
||||
<TextSection id={json.slug}>
|
||||
<CommitteeContainer committee={json}>
|
||||
{(json.slug === "board") && (
|
||||
<div>
|
||||
<p>
|
||||
{"Hallitukseen saa yhteyden lähettämällä sähköpostia "}
|
||||
<BlueLink to="mailto:hallitus@sahkoinsinoorikilta.fi">
|
||||
hallitus@sahkoinsinoorikilta.fi
|
||||
</BlueLink>
|
||||
. Hallituksen yksittäisiin jäseniin saat yhteyden etunimi.sukunimi@sahkoinsinoorikilta.fi osoitteista.
|
||||
</p>
|
||||
<p>
|
||||
{"Hallitukselle voi myös lähettää palautetta täyttämällä "}
|
||||
<BlueLink to="https://docs.google.com/forms/d/e/1FAIpQLSeD8Hm66uvwr7Xa2WGgOCfI2RS1NrZsmISf2QBKUcJf_stv8g/viewform?usp=sf_link">
|
||||
palautelomakkeen
|
||||
</BlueLink>
|
||||
, lomakkeen vastauksia käydään läpi hallituksen kokouksissa.
|
||||
</p>
|
||||
</div>
|
||||
)}
|
||||
</CommitteeContainer>
|
||||
</TextSection>
|
||||
</React.Fragment>
|
||||
))}
|
||||
</ContactContainer>
|
||||
</>
|
||||
<h6>Postiosoite</h6>
|
||||
<p>
|
||||
Aalto-yliopisto <br />
|
||||
Aalto-yliopiston Sähköinsinöörikilta ry <br />
|
||||
PL 15500 <br />
|
||||
00076 Aalto
|
||||
</p>
|
||||
<h6>Laskutus</h6>
|
||||
<p>
|
||||
Yhdistys : Aalto-yliopiston Sähköinsinöörikilta ry <br />
|
||||
Y-tunnus: 1627010-1 <br />
|
||||
Sähköpostilaskut: <a href="mailto:rahastonhoitaja@sahkoinsinoorikilta.fi">rahastonhoitaja@sahkoinsinoorikilta.fi</a>
|
||||
</p>
|
||||
<h6>Kiltahuone</h6>
|
||||
<p>
|
||||
Maarintie 8 <br />
|
||||
Huoneet 1130-1134
|
||||
</p>
|
||||
</div>
|
||||
</TextSection>
|
||||
);
|
||||
|
||||
export default ContactsPageView;
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
{
|
||||
"slug": "eptmk",
|
||||
"name_fi": "Elepajatoimikunta",
|
||||
"name_en": "",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "Pajapäävastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Oskari Ponkala"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Pajavastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Karl Lipping"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Pajakisälli",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Samu Nyman"
|
||||
},
|
||||
{
|
||||
"name": "Veikko Räty"
|
||||
},
|
||||
{
|
||||
"name": "Ville Lairila"
|
||||
},
|
||||
{
|
||||
"name": "Justus Ojala"
|
||||
},
|
||||
{
|
||||
"name": "Tommi Sytelä"
|
||||
},
|
||||
{
|
||||
"name": "Visa Kurvi"
|
||||
},
|
||||
{
|
||||
"name": "Petrus Asikainen"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,82 +0,0 @@
|
||||
{
|
||||
"slug": "hvtmk",
|
||||
"name_fi": "Hyvinvointitoimikunta",
|
||||
"name_en": "Committee of Wellbeing",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "Hyvinvointimestari",
|
||||
"name_en": "Master of Wellbeing",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Sofia Öhman"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Kulttuurivastaava",
|
||||
"name_en": "Culture Representative",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Juha Anttila"
|
||||
},
|
||||
{
|
||||
"name": "Aleksi Helin"
|
||||
},
|
||||
{
|
||||
"name": "Julia Pykälä-aho"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Liikuntavastaava",
|
||||
"name_en": "Sports Representative",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aaro Niskanen"
|
||||
},
|
||||
{
|
||||
"name": "Sauli Norja"
|
||||
},
|
||||
{
|
||||
"name": "Viola Palolahti"
|
||||
},
|
||||
{
|
||||
"name": "Eero Tihtonen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Kiltahuonevastaava",
|
||||
"name_en": "Guild Room Representative",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Patrick Linnanen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Kiltapäiväkerhovastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Samu Nyman"
|
||||
},
|
||||
{
|
||||
"name": "Aleksanteri Vesala"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Retkeilyvastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Vilhelmiina Honkanen"
|
||||
},
|
||||
{
|
||||
"name": "Pinja Leppänen"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,120 +0,0 @@
|
||||
{
|
||||
"slug": "mtmk",
|
||||
"name_fi": "Sössö-toimikunta",
|
||||
"name_en": "Media Committee",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "Puheenjohtaja, Päätoimittaja",
|
||||
"name_en": "Chair, Editor in Chief",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aino Suomi",
|
||||
"phone_number": null,
|
||||
"email": null,
|
||||
"image": null
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Toimittaja",
|
||||
"name_en": "Journalist",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Emmaleena Ahonen"
|
||||
},
|
||||
{
|
||||
"name": "Elias Hirvonen"
|
||||
},
|
||||
{
|
||||
"name": "Ville Lairila"
|
||||
},
|
||||
{
|
||||
"name": "Olli Komulainen"
|
||||
},
|
||||
{
|
||||
"name": "Pinja Salo"
|
||||
},
|
||||
{
|
||||
"name": "Tuukka Syrjänen"
|
||||
},
|
||||
{
|
||||
"name": "Aleksanteri Vesala"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Toimittaja & Valokuvaaja",
|
||||
"name_en": "Journalist & Photographer",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Jarno Mustonen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Taittaja & Valokuvaaja",
|
||||
"name_en": "Layout Artist & Photographer",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Jonna Tammikivi"
|
||||
},
|
||||
{
|
||||
"name": "Sasu Saalasti"
|
||||
}
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Taittaja & Toimittaja",
|
||||
"name_en": "Layout Artist & Journalist",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Juuli Leppänen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Valokuvaaja",
|
||||
"name_en": "Photographer",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Toni Lyttinen"
|
||||
},
|
||||
{
|
||||
"name": "Sauli Norja"
|
||||
},
|
||||
{
|
||||
"name": "Rasmus Räsänen"
|
||||
}
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Valokuvaaja & Graafikko",
|
||||
"name_en": "Photographer & Graphic Artist",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Kalle Petäjäaho"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Graafikko",
|
||||
"name_en": "Photographer & Graphic Artist",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Otto Julkunen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Videokuvaaja",
|
||||
"name_en": "Videographer",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aaro Rasilainen"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,82 +0,0 @@
|
||||
{
|
||||
"slug": "ntmk",
|
||||
"name_fi": "N-Toimikunta",
|
||||
"name_en": "",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "N-toimikunnan puheenjohtaja",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Ville Kaakinen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "N-toimikunnan varapuheenjohtaja",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Jami Hyytiäinen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Sklubi-yhdyshenkilö",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Ville-Pekka Laakkonen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Alumivastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Ella Eilola"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "N-Toimihenkilö",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Timi Tiira"
|
||||
},
|
||||
{
|
||||
"name": "Erna Virtanen"
|
||||
},
|
||||
{
|
||||
"name": "Emmaleena Ahonen"
|
||||
},
|
||||
{
|
||||
"name": "Jarno Mustonen"
|
||||
},
|
||||
{
|
||||
"name": "Pekka Aho"
|
||||
},
|
||||
{
|
||||
"name": "Mikko Haapamäki"
|
||||
},
|
||||
{
|
||||
"name": "Jonna Tammikivi"
|
||||
},
|
||||
{
|
||||
"name": "Juuli Leppänen"
|
||||
},
|
||||
{
|
||||
"name": "Simo Hakanummi"
|
||||
},
|
||||
{
|
||||
"name": "Tuomo Leino"
|
||||
},
|
||||
{
|
||||
"name": "Sasu Saalasti"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
{
|
||||
"slug": "optmk",
|
||||
"name_fi": "Opintotoimikunta",
|
||||
"name_en": "Study Committee",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "Opintomestari",
|
||||
"name_en": "Master of Studies",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Iikka Huttu"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Opintovastaava",
|
||||
"name_en": "Study Coordinator",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Juulia Härkönen"
|
||||
},
|
||||
{
|
||||
"name": "Patrick Linnanen"
|
||||
},
|
||||
{
|
||||
"name": "Veeti Lahtinen"
|
||||
},
|
||||
{
|
||||
"name": "Pinja Leppänen"
|
||||
},
|
||||
{
|
||||
"name": "Mikko Sandström"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Abimarkkinointipäävastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Vilhelmiina Honkanen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Abimarkkinointivastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Liisa Haltia"
|
||||
},
|
||||
{
|
||||
"name": "Jenni Marttinen"
|
||||
},
|
||||
{
|
||||
"name": "Venla Vastamäki"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,87 +0,0 @@
|
||||
{
|
||||
"slug": "others",
|
||||
"name_fi": "Muut",
|
||||
"name_en": "Other officials",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "Kiltapatruuna",
|
||||
"name_en": "Guild elder",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Toni Lyttinen",
|
||||
"phone_number": null,
|
||||
"email": null
|
||||
},
|
||||
{
|
||||
"name": "Emmaleena Ahonen",
|
||||
"phone_number": null,
|
||||
"email": null
|
||||
},
|
||||
{
|
||||
"name": "Johannes Ora",
|
||||
"phone_number": null,
|
||||
"email": null
|
||||
},
|
||||
{
|
||||
"name": "Antti Mäki",
|
||||
"phone_number": null,
|
||||
"email": null
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "TEK-yhdyshenkilö",
|
||||
"name_en": "TEK contact person",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Oskari Ponkala",
|
||||
"phone_number": null,
|
||||
"email": null
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Arkistonhoitaja",
|
||||
"name_en": "Archivist",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Timi Tiira",
|
||||
"phone_number": null,
|
||||
"email": null
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Häirintäyhdydyshenkilö",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Toni Ojala",
|
||||
"phone_number": null,
|
||||
"email": null
|
||||
},
|
||||
{
|
||||
"name": "Aino Suomi",
|
||||
"phone_number": null,
|
||||
"email": null
|
||||
},
|
||||
{
|
||||
"name": "Sauli Norja",
|
||||
"phone_number": null,
|
||||
"email": null
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Somevastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aaron Löfgren",
|
||||
"phone_number": null,
|
||||
"email": null
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,106 +0,0 @@
|
||||
{
|
||||
"slug": "otmk",
|
||||
"name_fi": "Ohjelmatoimikunta",
|
||||
"name_en": "Entertainment Committee",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "Hovimestari",
|
||||
"name_en": "Master of Ceremonies",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Sakke Kangas"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Hovineuvos",
|
||||
"name_en": "Court Counsellor",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Eero Ketonen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Emäntä",
|
||||
"name_en": "Hostess",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Elina Huttunen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Isäntä",
|
||||
"name_en": "Host",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aleksi Saajakari"
|
||||
},
|
||||
{
|
||||
"name": "Aaron Löfgren"
|
||||
},
|
||||
{
|
||||
"name": "Verneri Turkki"
|
||||
},
|
||||
{
|
||||
"name": "Elias Lindberg"
|
||||
},
|
||||
{
|
||||
"name": "Roni Vallius"
|
||||
},
|
||||
{
|
||||
"name": "Elias Damski"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Lukkari",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Sakari Harjunpää"
|
||||
},
|
||||
{
|
||||
"name": "Eero Torpo"
|
||||
},
|
||||
{
|
||||
"name": "Niilo Ojala"
|
||||
},
|
||||
{
|
||||
"name": "Samuel Laine"
|
||||
},
|
||||
{
|
||||
"name": "Toni Ojala"
|
||||
},
|
||||
{
|
||||
"name": "Ville Kaakinen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Lukkarikisällit",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Oona Karjalainen"
|
||||
},
|
||||
{
|
||||
"name": "Peter Lindahl"
|
||||
},
|
||||
{
|
||||
"name": "Aino Suomi"
|
||||
},
|
||||
{
|
||||
"name": "Sauli Norja"
|
||||
},
|
||||
{
|
||||
"name": "Venla Vastamäki"
|
||||
},
|
||||
{
|
||||
"name": "Kasper Skog"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
{
|
||||
"slug": "shntmk",
|
||||
"name_fi": "SIK100-historianäyttelytiimi",
|
||||
"name_en": "",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "SIK100-historianäyttelyvastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Timi Tiira"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Yrityssuhdevastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Ella Eilola"
|
||||
},
|
||||
{
|
||||
"name": "Taneli Myllykangas"
|
||||
},
|
||||
{
|
||||
"name": "Jesse Räisänen"
|
||||
},
|
||||
{
|
||||
"name": "Ville Kaakinen"
|
||||
},
|
||||
{
|
||||
"name": "Ville-Pekka Laakkonen"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
{
|
||||
"slug": "shtmk",
|
||||
"name_fi": "SIK100-historiatoimikunta",
|
||||
"name_en": "",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "SIK100-historiatoimikunnan puheenjohtaja",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Joni Kurvinen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "SIK100-historiatoimihenkilö",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Anni Parkkila"
|
||||
},
|
||||
{
|
||||
"name": "Erna Virtanen"
|
||||
},
|
||||
{
|
||||
"name": "Tommi Askola"
|
||||
},
|
||||
{
|
||||
"name": "Mikko Leino"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,91 +0,0 @@
|
||||
{
|
||||
"slug": "sstmk",
|
||||
"name_fi": "SIK100-toimikunta",
|
||||
"name_en": "",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "Puheenjohtaja",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Erna Virtanen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Webivastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Jaakko Koskela"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Markkinointivastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Sasu Saalasti"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Yritysvastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Juuli Leppänen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Seminaarivastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Sini Huhtinen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Kevätkarnevaalimajuri",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Olli Komulainen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "PoTa100-pääjuhlatirehtööri",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Emmaleena Ahonen"
|
||||
},
|
||||
{
|
||||
"name": "Jonna Tammikivi"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "PoTa100-jatkotirehtööri",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Mikael Liimatainen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "PoTa100-sillistirehtööri",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Tuomo Leino"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,49 +0,0 @@
|
||||
{
|
||||
"slug": "ttmk",
|
||||
"name_fi": "Teknologiatoimikunta",
|
||||
"name_en": "",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "Teknologiamestari",
|
||||
"name_en": "Master of technology",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Ilari Ojakorpi"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Teknologianeuvos",
|
||||
"name_en": "Technology Advisor",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aarni Halinen"
|
||||
},
|
||||
{
|
||||
"name": "Jaakko Koskela"
|
||||
},
|
||||
{
|
||||
"name": "Toni Lyttinen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Teknologiakisälli",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Elmo Kankkunen"
|
||||
},
|
||||
{
|
||||
"name": "Antti Eronen"
|
||||
},
|
||||
{
|
||||
"name": "Justus Ojala"
|
||||
},
|
||||
{
|
||||
"name": "Lasse Ruokokoski"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,89 +0,0 @@
|
||||
{
|
||||
"slug": "utmk",
|
||||
"name_fi": "Ulkotoimikunta",
|
||||
"name_en": "External Affairs Committeee",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "Ulkomestari",
|
||||
"name_en": "Master of External Affairs",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Heidi Mäkitalo"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Kv-Fuksikapteeni",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Suvi Karanta"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Kv-ISOvastaava",
|
||||
"name_en": "International Tutor Coordinator",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Pyry Vaara"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "International Helper",
|
||||
"name_en": "International Helper",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Aaro Niskanen"
|
||||
},
|
||||
{
|
||||
"name": "Eerik Eskola"
|
||||
}
|
||||
,
|
||||
{
|
||||
"name": "Oona Karjalainen"
|
||||
},
|
||||
{
|
||||
"name": "Aleksi Helin"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Ulkosuhdevastaava",
|
||||
"name_en": "Apprentice of External Affairs",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Nestori Yrjönkoski"
|
||||
},
|
||||
{
|
||||
"name": "Johannes Ora"
|
||||
},
|
||||
{
|
||||
"name": "Eino Tyrvänen"
|
||||
},
|
||||
{
|
||||
"name": "Jenni Marttinen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Ulkowanhus & Ulkopatruuna",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Oliver Hiekkamies"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "KVummisetä",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Elias Hirvonen"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
{
|
||||
"slug": "ytmk",
|
||||
"name_fi": "Yrityssuhdetoimikunta",
|
||||
"name_en": "Corporate Relations Committee",
|
||||
"roles": [
|
||||
{
|
||||
"name_fi": "Yrityssuhdemestari",
|
||||
"name_en": "Master of Corporate Relations",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Tommi Oinonen"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Excursiopäävastaava",
|
||||
"name_en": "Head of Excursions",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Henry Gustafsson"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Excursiovastaava",
|
||||
"name_en": "",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Visa Kurvi"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name_fi": "Yrityssuhdevastaava",
|
||||
"name_en": "Apprentice of Corporate Relations",
|
||||
"representatives": [
|
||||
{
|
||||
"name": "Melina Sundell"
|
||||
},
|
||||
{
|
||||
"name": "Emma Reinikainen"
|
||||
},
|
||||
{
|
||||
"name": "Iida Luoma"
|
||||
},
|
||||
{
|
||||
"name": "Elma Tuohimetsä"
|
||||
},
|
||||
{
|
||||
"name": "Nestori Yrjönkoski"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -25,7 +25,7 @@ const CorporatePageHero: React.FC = () => (
|
||||
<HeroAsideItem
|
||||
header="LinkedIn"
|
||||
link="https://linkedin.com/groups/8103057"
|
||||
linkText="Killan LinkedIn ryhmä"
|
||||
linkText="Killan LinkedIn-ryhmä"
|
||||
/>
|
||||
</HeroAside>
|
||||
</Hero>
|
||||
|
||||
@@ -6,7 +6,7 @@ import JobAd from "@models/JobAd";
|
||||
import CorporatePageHero from "./CorporatePageHero";
|
||||
import JobAdList from "./JobAdList";
|
||||
|
||||
import BoardJson from "../ContactsPage/board.json";
|
||||
import BoardJson from "../BoardPage/board.json";
|
||||
|
||||
const EXCURSION_RULES = "https://static.sahkoinsinoorikilta.fi/saannot/excursiosaannot.pdf";
|
||||
const CORPORATE_MASTER_INFO = BoardJson.roles.filter((role) => role.name_fi === "Yrityssuhdemestari")[0].representatives[0];
|
||||
@@ -74,7 +74,7 @@ const CorporatePageView: React.FC<CorporatePageViewProps> = ({ jobAds }) => (
|
||||
<p>
|
||||
Killan nettisivuilla on listattu killan yritysyhteistyökumppanit.
|
||||
Killan sivuilta löytyvät myös yritysyhteistyökumppaneiden avoimet työpaikkamainokset.
|
||||
Nämä mainokset ohjataan killan jäsenistölle eteenpäin myös viikottaisin kiltamailin kautta, jotta kaikki mainokset saavat parhaan mahdollisen näkyvyyden kiltalaisten arjessa.
|
||||
Nämä mainokset ohjataan killan jäsenistölle eteenpäin myös viikoittaisen kiltamailin kautta, jotta kaikki mainokset saavat parhaan mahdollisen näkyvyyden kiltalaisten arjessa.
|
||||
</p>
|
||||
|
||||
<h6>Sössö</h6>
|
||||
@@ -82,7 +82,7 @@ const CorporatePageView: React.FC<CorporatePageViewProps> = ({ jobAds }) => (
|
||||
<Link to="https://sosso.fi">Sössö</Link> on Sähköinsinöörikillan hauska ja rakas opiskelijalehti.
|
||||
Sössö on kerännyt suosiota ja kartuttanut lukijamäärää jo vuodesta 1969 asti.
|
||||
Sössö ilmestyy perinteisesti paperisena, mutta myös Netti-Sössössä julkaistaan jatkuvasti uusia artikkeleja.
|
||||
Sössö tavoittaa noin tuhat elektroniikan, sähkötekniikan ja tietoliikennetekniikan opiskelijaa sekä koko tiedekunnan henkilökunnan.
|
||||
Sössö tavoittaa noin tuhat elektroniikan ja sähkötekniikan opiskelijaa sekä koko tiedekunnan henkilökunnan.
|
||||
Lisäksi lehti lähetetään muille opiskelijajärjestöille. Yritysten on mahdollista saada mainostilaa Sössön sivuilta.
|
||||
</p>
|
||||
</div>
|
||||
@@ -100,8 +100,8 @@ const CorporatePageView: React.FC<CorporatePageViewProps> = ({ jobAds }) => (
|
||||
|
||||
<CTASection
|
||||
bgColor="orange1"
|
||||
link="https://sosso.fi/wp-content/uploads/2023/01/sossomediakortti23.pdf"
|
||||
linkText="Killan lehden mediakortin löydät täältä ›"
|
||||
link="https://static.sahkoinsinoorikilta.fi/sekalaista/sossomediakortti25-web.pdf"
|
||||
linkText="Killan lehden mediakortti ›"
|
||||
>
|
||||
Mainos Sössöön?
|
||||
</CTASection>
|
||||
@@ -110,7 +110,7 @@ const CorporatePageView: React.FC<CorporatePageViewProps> = ({ jobAds }) => (
|
||||
<h3 id="tyopaikat">Työpaikkailmoitukset</h3>
|
||||
<div>
|
||||
<JobAdList jobAds={jobAds} />
|
||||
<p>Voit saada yrityksesi työpaikkailmoituksen listalle lähettämällä sen osoitteeseen <a href={`mailto:${CORPORATE_MASTER_INFO.email}`}>{CORPORATE_MASTER_INFO.email}</a></p>
|
||||
<p> Haluatko työpaikkailmoituksesti näkyviin listalle? Lähetä tarjous osoitteeseen <a href={`mailto:${CORPORATE_MASTER_INFO.email}`}>{CORPORATE_MASTER_INFO.email}</a></p>
|
||||
</div>
|
||||
|
||||
</TextSection>
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
import React from "react";
|
||||
import styled from "styled-components";
|
||||
import JobAd from "@models/JobAd";
|
||||
import { Accordion } from "@components/index";
|
||||
import ReactMarkdown from "react-markdown";
|
||||
import rehypeRaw from "rehype-raw";
|
||||
import rehypeSanitize from "rehype-sanitize";
|
||||
|
||||
interface JobAdListProps {
|
||||
jobAds: JobAd[];
|
||||
}
|
||||
|
||||
const List = styled.ul`
|
||||
padding: 0;
|
||||
|
||||
li {
|
||||
margin: 1rem 0;
|
||||
list-style: none;
|
||||
}
|
||||
`;
|
||||
|
||||
const JobAdList: React.FC<JobAdListProps> = ({ jobAds }) => (
|
||||
<List>
|
||||
{jobAds.map((ad) => (
|
||||
<li key={ad.id}>
|
||||
<Accordion title={ad.title_en}>
|
||||
<div>
|
||||
<p>
|
||||
{ad.description_en}
|
||||
</p>
|
||||
<ReactMarkdown rehypePlugins={[rehypeRaw, rehypeSanitize]}>
|
||||
{ad.content_en}
|
||||
</ReactMarkdown>
|
||||
</div>
|
||||
</Accordion>
|
||||
</li>
|
||||
))}
|
||||
</List>
|
||||
|
||||
);
|
||||
|
||||
export default JobAdList;
|
||||
@@ -0,0 +1,19 @@
|
||||
import React from "react";
|
||||
import { TextSection } from "@components/index";
|
||||
|
||||
const EquityPageView: React.FC = () => (
|
||||
<TextSection>
|
||||
<h1>Yhdenvertaisuus</h1>
|
||||
<div>
|
||||
<p>Sähköinsinöörikilta ry on sitoutunut edistämään yhdenvertaisuutta ja tasa-arvoa. Kilta on kaikille avoin ja
|
||||
toivottaa kaikki uudet jäsenet tervetulleiksi toimintaansa. Kilta ei hyväksy minkäänlaista syrjintää, kiusaamista tai häirintää.
|
||||
</p>
|
||||
<p>
|
||||
Mikäli kohtaat epäasiallista käytöstä, voit täyttää <a href="https://docs.google.com/forms/d/e/1FAIpQLSdG4U2gBG25YehNLvor5KP9CRmd83unWtP1-jmd-3e5fCyomQ/viewform">tämän</a> lomakkeen.
|
||||
Löydät oheisesta lomakkeesta myös yhdenvertaisuusvastaavien yhteystiedot.
|
||||
</p>
|
||||
</div>
|
||||
</TextSection>
|
||||
);
|
||||
|
||||
export default EquityPageView;
|
||||
@@ -0,0 +1,35 @@
|
||||
import React from "react";
|
||||
import {
|
||||
Hero, HeroPrimarySection, HeroAside, HeroAsideItem,
|
||||
} from "@components/Hero";
|
||||
|
||||
const ForFreshmenPageHero: React.FC = () => (
|
||||
<Hero>
|
||||
<HeroPrimarySection
|
||||
header="Welcome to study in Otaniemi!"
|
||||
text="This is the frontpage for fuksis (freshmen). Here we have collected all the most important information that you will need during your first year.
|
||||
Of course, everything happening in the guild can't fit here, so it is recommended that you also check out the more general 'in english' page."
|
||||
/>
|
||||
|
||||
<HeroAside bgColor="lightTurquoise">
|
||||
<HeroAsideItem
|
||||
header="Read the guild freshman guide"
|
||||
link="https://static.sahkoinsinoorikilta.fi/FTMK/Fopas_25_en_web.pdf"
|
||||
linkText="read the freshman guide here!"
|
||||
/>
|
||||
|
||||
<HeroAsideItem
|
||||
header="Follow the guild's announcements"
|
||||
link="https://t.me/+KxOI-aQ0jpFhNTJk"
|
||||
linkText="Join the guild's Telegram-group!"
|
||||
/>
|
||||
<HeroAsideItem
|
||||
header="Fuksi groups and ISOs?"
|
||||
link="#isos"
|
||||
linkText="Information about the fuksi groups"
|
||||
/>
|
||||
</HeroAside>
|
||||
</Hero>
|
||||
);
|
||||
|
||||
export default ForFreshmenPageHero;
|
||||
@@ -0,0 +1,172 @@
|
||||
import React from "react";
|
||||
import Image from "next/legacy/image";
|
||||
import styled from "styled-components";
|
||||
import {
|
||||
CTASection, TextSection, InfoBox, PageLink, Link,
|
||||
} from "@components/index";
|
||||
import ForFreshmenPageHero from "./ForFreshmenPageHero";
|
||||
|
||||
const FUKSI_POINTS_LINK = "https://static.sahkoinsinoorikilta.fi/FTMK/Fuksipisteohje.pdf";
|
||||
const TG_GROUP_CHAT_LINK = "https://t.me/+ctpg4H0-Y3hlZTY0";
|
||||
const TG_NOTIFICATIONS_LINK = "https://t.me/+v30Nts-MrIMyMjNk";
|
||||
const EMAIL_LINK = "ftmk@sahkoinsinoorikilta.fi";
|
||||
const EMAIL_LINK_MAILTO = `mailto:${EMAIL_LINK}`;
|
||||
const SIK_QR = "https://static.sahkoinsinoorikilta.fi/FTMK/SIK-Fuksit-2026-telegram.jpg";
|
||||
const SIK_QR_TIEDOTUS = "https://static.sahkoinsinoorikilta.fi/FTMK/SIK-Fuksit-2026-telegram-tiedotus.jpg";
|
||||
|
||||
const ImageContainer = styled.div`
|
||||
width: 100%;
|
||||
display: block;
|
||||
margin: auto;
|
||||
`;
|
||||
|
||||
const QRImages = styled.img`
|
||||
width: 10em;
|
||||
height: 10em;
|
||||
`;
|
||||
|
||||
const FopasImage = styled.img`
|
||||
width: 15em;
|
||||
margin-bottom: 1em;
|
||||
`;
|
||||
|
||||
const ForFreshmenPageView: React.FC = () => (
|
||||
<>
|
||||
<ForFreshmenPageHero />
|
||||
<TextSection>
|
||||
<h3 id="abeille">Congratulations on an awesome choice of studies!</h3>
|
||||
<div>
|
||||
<p>
|
||||
You have made an excellent choice by taking the first step on a journey where you will first become an engineering student, ...known better in finnish
|
||||
as "teekkari" and later a Master of Science in Engineering "Diplomi-insinööri".
|
||||
You have just become a technical high school graduate and a freshman.
|
||||
A great achievement that certainly deserves celebration, and there is no better place for that celebration than Otaniemi.
|
||||
Welcome!
|
||||
</p>
|
||||
<p>
|
||||
As a first step, we recommend that you join the Telegram channels created for freshmen.
|
||||
{" "}
|
||||
<Link to={TG_GROUP_CHAT_LINK} target="_blank">Click here</Link> to get acquainted with your fellow freshmen and ISOs, and <Link to={TG_NOTIFICATIONS_LINK} target="_blank">click here</Link> to join the notification channel.
|
||||
</p>
|
||||
|
||||
<h6>A story named Teekkarius</h6>
|
||||
<p>
|
||||
Every teekkari's journey is unique.
|
||||
The guild, the student union, and the other organizations in Otaniemi will undoubtedly offer something for everyone.
|
||||
You are now part of Aalto University's Electrical Engineering Guild, and we will support you throughout your teekkari journey so that you can find the places that are perfect for you to make an impact and pursue your hobbies.
|
||||
To make this possible, we have placed you in a freshman group, which you will get to know during orientation week and which will serve as your support group for new adventures.
|
||||
Your freshman group also includes a few tutors better known as ISOs.
|
||||
You can find more information about them <Link to="#isot">below</Link>.
|
||||
</p>
|
||||
|
||||
<ImageContainer>
|
||||
<Image
|
||||
src="https://static.sahkoinsinoorikilta.fi/FTMK/kipparit-26.jpg"
|
||||
alt="Kipparit"
|
||||
layout="responsive"
|
||||
width={100}
|
||||
height={80}
|
||||
objectFit="contain"
|
||||
/>
|
||||
</ImageContainer>
|
||||
|
||||
<h6>Freshmen captains</h6>
|
||||
<p>
|
||||
We are your freshman captains <strong>Teemu</strong> and <strong>Henri</strong> and we'll be here to support you and monitor your
|
||||
progress throughout the freshman year adventures toward earning your engineer's hat (= teekkarilakki),
|
||||
which you might possibly earn during May Day next spring.
|
||||
If you have any questions, feel free to contact us via <Link to={TG_GROUP_CHAT_LINK} target="_blank">Telegram</Link> or <a href={EMAIL_LINK_MAILTO}>email</a>.
|
||||
</p>
|
||||
|
||||
<h6>Smile When We Meet!</h6>
|
||||
<p>
|
||||
Although the first days in Otaniemi might bring along some funny and strange experiences, don't be alarmed by them!
|
||||
Over time, the pieces of the puzzle will come together to form an image that reflects you, and you'll have the opportunity to shape what the final result looks like.
|
||||
</p>
|
||||
<p>
|
||||
Orientation week is held from August 25th to 29th, 2026, but even before then, you'll have the chance to meet us, other freshmen, and the ISOs at a relaxed Pre-Start event.
|
||||
The Pre-Start for the freshman year is organized on Saturday, August 16th, 2026. Find more details in the Telegram groups!
|
||||
</p>
|
||||
|
||||
<h6>Teemu Heikkinen</h6>
|
||||
<p>040 097 1835<br />teemu.heikkinen (ät) sahkoinsinoorikilta.fi <br />@heikkinenteemu</p>
|
||||
|
||||
<h6>Henri Aito</h6>
|
||||
<p>045 328 2883<br />henri.aito (ät) sahkoinsinoorikilta.fi <br />@henriaito</p>
|
||||
</div>
|
||||
<aside>
|
||||
<div>
|
||||
<PageLink to={EMAIL_LINK_MAILTO} desc={EMAIL_LINK}>
|
||||
You can reach the freshman captains at
|
||||
</PageLink>
|
||||
<PageLink to="https://api.sahkoinsinoorikilta.fi/members/application" desc="And join our activities! ›">
|
||||
Join the guild!
|
||||
</PageLink>
|
||||
<PageLink to={FUKSI_POINTS_LINK} desc="Take a look at the fuksipoints ›">
|
||||
Fuksipoint guide - This will be translated later so don't worry if you don't understand Finnish!
|
||||
</PageLink>
|
||||
</div>
|
||||
<div>
|
||||
<InfoBox>
|
||||
<h6>Fuksiguide</h6>
|
||||
<Link to="https://static.sahkoinsinoorikilta.fi/FTMK/Fopas_25_en_web.pdf" target="_blank">
|
||||
<FopasImage
|
||||
src="https://static.sahkoinsinoorikilta.fi/FTMK/Fopas_25_kansi.jpg"
|
||||
/>
|
||||
</Link>
|
||||
|
||||
<p>
|
||||
It's a good idea to take a look at the fuksiguide before starting your studies!
|
||||
The guide contains lots of useful information about the guild, the student union, and the student life in Otaniemi.
|
||||
You can find the guide <Link to="https://static.sahkoinsinoorikilta.fi/FTMK/Fopas_25_en_web.pdf" target="_blank">here</Link>.
|
||||
</p>
|
||||
<br />
|
||||
<h6>Telegram?</h6>
|
||||
<p>
|
||||
Telegram is a messaging app used in Otaniemi.
|
||||
More info can be found here: <Link to="https://telegram.org/faq" target="_blank">https://telegram.org/faq</Link>.
|
||||
</p>
|
||||
<p>
|
||||
SIK fuksis have a group chat, which you can join by scanning the QR code below:
|
||||
</p>
|
||||
<QRImages
|
||||
src={SIK_QR}
|
||||
/>
|
||||
<p>or <Link to={TG_GROUP_CHAT_LINK} target="_blank">press me!</Link></p>
|
||||
<p>Also join the notifications channel for SIK fuksis, to stay in the loop!:</p>
|
||||
<QRImages
|
||||
src="https://static.sahkoinsinoorikilta.fi/FTMK/SIK-Fuksit-tiedotus-2026.jpg"
|
||||
/>
|
||||
<p>or <Link to={TG_NOTIFICATIONS_LINK} target="_blank">press me!</Link></p>
|
||||
</InfoBox>
|
||||
</div>
|
||||
</aside>
|
||||
</TextSection>
|
||||
<CTASection
|
||||
bgColor="lightBlue"
|
||||
link="/kilta/toiminta"
|
||||
linkText="Follow what the guild is up to"
|
||||
>
|
||||
The guild organises lots of things!
|
||||
</CTASection>
|
||||
|
||||
<TextSection>
|
||||
<h3 id="isos">Freshman groups and ISOs</h3>
|
||||
<div>
|
||||
<p>SIK freshmen enjoy the guidance and care of their wonderful ISOs in their own freshman groups</p>
|
||||
<p>
|
||||
ISOs are older students and guild members, who are there to support you throughout your freshman year. You will be divided into groups.
|
||||
You can ask your ISOs anything regarding studying and student life. Even though they don't know all the answers, they can likely help you finding them.
|
||||
</p>
|
||||
<p>
|
||||
As stated above, your ISOs will support you through your whole freshman year, but you will see them most during the orientation week,
|
||||
during which they will wander through Otaniemi together with your group and guide you into the ways of the teekkari.
|
||||
They will also help you find whatever is needed to start your studies here, and will support you in creating your timetable and getting your library, HSL and student cards.
|
||||
</p>
|
||||
<p>ISOs are also invited to the first event of the freshman year, the head start. Come meet them there early!</p>
|
||||
</div>
|
||||
</TextSection>
|
||||
</>
|
||||
);
|
||||
|
||||
export default ForFreshmenPageView;
|
||||
@@ -0,0 +1,35 @@
|
||||
import React from "react";
|
||||
import {
|
||||
Hero, HeroPrimarySection, HeroAside, HeroAsideItem,
|
||||
} from "@components/Hero";
|
||||
|
||||
const ForFreshmenPageHero: React.FC = () => (
|
||||
<Hero>
|
||||
<HeroPrimarySection
|
||||
header="Welcome to Aalto and Otaniemi!"
|
||||
text="This is the frontpage for fuksis (freshmen). Here we have collected all the most important information that you will need during your first year.
|
||||
Of course, everything happening in the guild can't fit here, so it is recommended that you also check out the more general 'in english' page."
|
||||
/>
|
||||
|
||||
<HeroAside bgColor="lightTurquoise">
|
||||
<HeroAsideItem
|
||||
header="Read the guild's fuksi guide"
|
||||
link="https://static.sahkoinsinoorikilta.fi/FTMK/Fopas_25_en_web.pdf"
|
||||
linkText="Read the fuksi guide here!"
|
||||
/>
|
||||
|
||||
<HeroAsideItem
|
||||
header="Follow the guild's announcements"
|
||||
link="https://t.me/+KxOI-aQ0jpFhNTJk"
|
||||
linkText="Join the guild's Telegram group!"
|
||||
/>
|
||||
<HeroAsideItem
|
||||
header="Fuksi groups and ISOs?"
|
||||
link="#isos"
|
||||
linkText="Information about the fuksi groups"
|
||||
/>
|
||||
</HeroAside>
|
||||
</Hero>
|
||||
);
|
||||
|
||||
export default ForFreshmenPageHero;
|
||||
@@ -0,0 +1,193 @@
|
||||
import React from "react";
|
||||
import Image from "next/legacy/image";
|
||||
import styled from "styled-components";
|
||||
import {
|
||||
CTASection, TextSection, InfoBox, PageLink, Link,
|
||||
} from "@components/index";
|
||||
import ForIntlPageHero from "./ForIntlPageHero";
|
||||
|
||||
const FUKSI_POINTS_LINK = "https://static.sahkoinsinoorikilta.fi/FTMK/Fuksipisteohje.pdf";
|
||||
const TG_GROUP_CHAT_LINK = "https://t.me/+oNrBDLI5cXZhNDEx";
|
||||
const TG_NOTIFICATIONS_LINK = "https://t.me/sikhotline2526";
|
||||
const EMAIL_LINK = "ftmk@sahkoinsinoorikilta.fi";
|
||||
const EMAIL_LINK_MAILTO = `mailto:${EMAIL_LINK}`;
|
||||
const SIK_QR = "https://static.sahkoinsinoorikilta.fi/FTMK/SIK-Fuksit-2026-telegram.jpg";
|
||||
const SIK_QR_TIEDOTUS = "https://static.sahkoinsinoorikilta.fi/FTMK/SIK-Fuksit-2026-telegram-tiedotus.jpg";
|
||||
|
||||
const ImageContainer = styled.div`
|
||||
width: 100%;
|
||||
display: block;
|
||||
margin: auto;
|
||||
`;
|
||||
|
||||
const QRImages = styled.img`
|
||||
width: 10em;
|
||||
height: 10em;
|
||||
`;
|
||||
|
||||
const FopasImage = styled.img`
|
||||
width: 15em;
|
||||
margin-bottom: 1em;
|
||||
`;
|
||||
|
||||
const ForIntlPageView: React.FC = () => (
|
||||
<>
|
||||
<ForIntlPageHero />
|
||||
<TextSection>
|
||||
<h3 id="abeille">Congratulations on your admission!</h3>
|
||||
<div>
|
||||
<p>
|
||||
You've not only become a new student at Aalto, but also what's known as a teekkari
|
||||
– a term used to describe students of technology in Finland, and which is synonymous
|
||||
with a distinct, tradition-filled student culture.
|
||||
</p>
|
||||
<p>
|
||||
Whether you've learned about this before or it's your first time hearing about it, it's absolutely worth celebrating, and the best place for this is definitely our campus in Otaniemi. Welcome!
|
||||
</p>
|
||||
<p>
|
||||
As a first step, we recommend that you join the Telegram channels made for fuksis. This is where you can get to know your fellow new students and your student tutors known as ISOs. This is also where you can access the information channel.
|
||||
{" "}
|
||||
<Link to={TG_GROUP_CHAT_LINK} target="_blank">Click here</Link> to get acquainted with your fellow freshmen and ISOs, and <Link to={TG_NOTIFICATIONS_LINK} target="_blank">click here</Link> to join the notification channel.
|
||||
</p>
|
||||
|
||||
<h6>A journey called Teekkarius</h6>
|
||||
<p>
|
||||
Every teekkari's journey is unique.
|
||||
The guild, the student union, and the other organizations in Otaniemi will undoubtedly offer something for everyone.
|
||||
You are now part of Aalto University's Electrical Engineering Guild, and we will support you throughout your teekkari journey so that you can find the places that are perfect for you to make an impact and pursue your hobbies.
|
||||
To make this possible, we have placed you in a freshman group, which you will get to know during orientation week and which will serve as your support group for new adventures.
|
||||
Your freshman group also includes a few tutors better known as ISOs.
|
||||
You can find more information about them <Link to="#isot">below</Link>.
|
||||
</p>
|
||||
<p>
|
||||
The journey of a teekkari is unique to everyone. The guild, the Aalto Student Union,
|
||||
and other organizations in Otaniemi offer various opportunities to pursue hobbies,
|
||||
passions, and social lives.
|
||||
</p>
|
||||
<p>
|
||||
You are now part of the Aalto University Guid of Electrical Engineering
|
||||
(SIK, short for Sähköinsinöörikilta in Finnish) and we will support you in
|
||||
settling in and finding the right places to have fun and make an impact.
|
||||
</p>
|
||||
<p>
|
||||
To make this successful, we’ve placed you in a small “fuksi group” with other new students,
|
||||
whom you will get to know and adventure with starting in Orientation Week.
|
||||
Your fuksi group also includes a few ISOs, who have studied here for at least a year and will
|
||||
lean on their experience to show you around and help you get comfortable.
|
||||
</p>
|
||||
|
||||
<ImageContainer>
|
||||
<Image
|
||||
src="https://static.sahkoinsinoorikilta.fi/FTMK/Captains2026.jpg"
|
||||
alt="Kipparit"
|
||||
layout="responsive"
|
||||
width={100}
|
||||
height={80}
|
||||
objectFit="contain"
|
||||
/>
|
||||
</ImageContainer>
|
||||
|
||||
<h6>International captains</h6>
|
||||
<p>
|
||||
We are your International Fuksi Captains <strong>Markus</strong> and <strong>Apollo</strong>,
|
||||
and we will be there to support you in getting started at Aalto, but also to guide you through
|
||||
the awesome (and distinctly Finnish) process of becoming a full-blown teekkari.
|
||||
This involves participating in many fun activities and traditions, culminating in earning the famous
|
||||
Teekkari Cap and having an amazing community alongside you. If you have any questions,
|
||||
please contact us on Telegram or by email.
|
||||
</p>
|
||||
|
||||
<h6>Looking forward to meeting you!</h6>
|
||||
<p>
|
||||
Even though your first few days in Otaniemi may bring some new and unfamiliar experiences,
|
||||
please don't be intimidated! Over time, the pieces of the puzzle will come together and you'll be
|
||||
having just as much fun as we are. Always remember that as a teekkari in Otaniemi, you're never alone.
|
||||
</p>
|
||||
<p>
|
||||
Orientation week will be held from 25 to 29 August 2026, but even before that you have the
|
||||
opportunity to come and get to know us, other freshmen and ISOs at a relaxed Headstart event.
|
||||
This will be held on Saturday 16 August 2026. More about that in the Telegram groups!
|
||||
</p>
|
||||
|
||||
<h6>Apollo Ailus</h6>
|
||||
<p>+358 045 803 3662<br />apollo.ailus@sahkoinsinoorikilta.fi <br />@SIKCaptain</p>
|
||||
|
||||
<h6>Markus Aaltio</h6>
|
||||
<p>+358 044 050 4028<br />markus.aaltio@sahkoinsinoorikilta.fi <br />@KvCaptain</p>
|
||||
</div>
|
||||
<aside>
|
||||
<div>
|
||||
<PageLink to={EMAIL_LINK_MAILTO} desc={EMAIL_LINK}>
|
||||
You can reach the freshman captains at
|
||||
</PageLink>
|
||||
<PageLink to="https://api.sahkoinsinoorikilta.fi/members/application" desc="And join our activities! ›">
|
||||
Join the guild!
|
||||
</PageLink>
|
||||
<PageLink to={FUKSI_POINTS_LINK} desc="Take a look at the fuksipoints ›">
|
||||
Fuksipoint guide - This will be translated later so don't worry if you don't understand Finnish!
|
||||
</PageLink>
|
||||
</div>
|
||||
<div>
|
||||
<InfoBox>
|
||||
<h6>Fuksiguide</h6>
|
||||
<Link to="https://static.sahkoinsinoorikilta.fi/FTMK/Fuksiguide_25_web.pdf" target="_blank">
|
||||
<FopasImage
|
||||
src="https://static.sahkoinsinoorikilta.fi/FTMK/Fuksiguide_25_cover.png"
|
||||
/>
|
||||
</Link>
|
||||
|
||||
<p>
|
||||
It's a good idea to take a look at the fuksiguide before starting your studies!
|
||||
The guide contains lots of useful information about the guild, the student union, and the student life in Otaniemi.
|
||||
You can find the guide <Link to="https://static.sahkoinsinoorikilta.fi/FTMK/Fopas_25_en_web.pdf" target="_blank">here</Link>.
|
||||
</p>
|
||||
<br />
|
||||
<h6>Telegram?</h6>
|
||||
<p>
|
||||
Telegram is a messaging app used in Otaniemi.
|
||||
More info can be found here: <Link to="https://telegram.org/faq" target="_blank">https://telegram.org/faq</Link>.
|
||||
</p>
|
||||
<p>
|
||||
SIK fuksis have a group chat, which you can join by scanning the QR code below:
|
||||
</p>
|
||||
<QRImages
|
||||
src={SIK_QR}
|
||||
/>
|
||||
<p>or <Link to={TG_GROUP_CHAT_LINK} target="_blank">press me!</Link></p>
|
||||
<p>Also join the notifications channel for SIK fuksis, to stay in the loop!:</p>
|
||||
<QRImages
|
||||
src={SIK_QR_TIEDOTUS}
|
||||
/>
|
||||
<p>or <Link to={TG_NOTIFICATIONS_LINK} target="_blank">press me!</Link></p>
|
||||
</InfoBox>
|
||||
</div>
|
||||
</aside>
|
||||
</TextSection>
|
||||
<CTASection
|
||||
bgColor="lightBlue"
|
||||
link="/kilta/toiminta"
|
||||
linkText="Follow what the guild is up to"
|
||||
>
|
||||
The guild organises lots of things!
|
||||
</CTASection>
|
||||
|
||||
<TextSection>
|
||||
<h3 id="isos">Freshman groups and ISOs</h3>
|
||||
<div>
|
||||
<p>SIK freshmen enjoy the guidance and care of their wonderful ISOs in their own freshman groups</p>
|
||||
<p>
|
||||
ISOs are older students and guild members, who are there to support you throughout your freshman year. You will be divided into groups.
|
||||
You can ask your ISOs anything regarding studying and student life. Even though they don't know all the answers, they can likely help you finding them.
|
||||
</p>
|
||||
<p>
|
||||
As stated above, your ISOs will support you through your whole freshman year, but you will see them most during the orientation week,
|
||||
during which they will wander through Otaniemi together with your group and guide you into the ways of the teekkari.
|
||||
They will also help you find whatever is needed to start your studies here, and will support you in creating your timetable and getting your library, HSL and student cards.
|
||||
</p>
|
||||
<p>ISOs are also invited to the first event of the freshman year, the head start. Come meet them there early!</p>
|
||||
</div>
|
||||
</TextSection>
|
||||
</>
|
||||
);
|
||||
|
||||
export default ForIntlPageView;
|
||||
@@ -13,13 +13,13 @@ const FreshmenPageHero: React.FC = () => (
|
||||
<HeroAside bgColor="lightTurquoise">
|
||||
<HeroAsideItem
|
||||
header="Lue killan fuksiopas"
|
||||
link="https://static.sahkoinsinoorikilta.fi/FTMK/Fuksiopas2023.pdf"
|
||||
link="https://static.sahkoinsinoorikilta.fi/FTMK/Fopas_25_web.pdf"
|
||||
linkText="lue fuksiopas täältä!"
|
||||
/>
|
||||
|
||||
<HeroAsideItem
|
||||
header="Seuraa killan tiedotusta"
|
||||
link="https://t.me/+AB-JMbAxM2c0MDc0"
|
||||
link="https://t.me/+KxOI-aQ0jpFhNTJk"
|
||||
linkText="Liity killan Telegram-ryhmään!"
|
||||
/>
|
||||
<HeroAsideItem
|
||||
|
||||
@@ -7,10 +7,12 @@ import {
|
||||
import FreshmenPageHero from "./FreshmenPageHero";
|
||||
|
||||
const FUKSI_POINTS_LINK = "https://static.sahkoinsinoorikilta.fi/FTMK/Fuksipisteohje.pdf";
|
||||
const TG_GROUP_CHAT_LINK = "https://t.me/+6rAKYPVaCmg4ZTlk";
|
||||
const TG_NOTIFICATIONS_LINK = "https://t.me/+57BnXcTlsuU0YWQ0";
|
||||
const TG_GROUP_CHAT_LINK = "https://t.me/+ctpg4H0-Y3hlZTY0";
|
||||
const TG_NOTIFICATIONS_LINK = "https://t.me/+v30Nts-MrIMyMjNk";
|
||||
const EMAIL_LINK = "ftmk@sahkoinsinoorikilta.fi";
|
||||
const EMAIL_LINK_MAILTO = `mailto:${EMAIL_LINK}`;
|
||||
const SIK_QR = "https://static.sahkoinsinoorikilta.fi/FTMK/SIK-Fuksit-2026-telegram.jpg";
|
||||
const SIK_QR_TIEDOTUS = "https://static.sahkoinsinoorikilta.fi/FTMK/SIK-Fuksit-2026-telegram-tiedotus.jpg";
|
||||
|
||||
const ImageContainer = styled.div`
|
||||
width: 100%;
|
||||
@@ -43,7 +45,7 @@ const FreshmenPageView: React.FC = () => (
|
||||
<p>
|
||||
Ensi askeleina suosittelemme, että liityt teille fukseille tehdyille Telegram-kanaville.
|
||||
{" "}
|
||||
<Link to={TG_GROUP_CHAT_LINK} target="_blank">Tästä</Link> tutustumaan fuksikavereihin ja ISOihisi ja <Link to={TG_NOTIFICATIONS_LINK} target="_blank">tästä</Link> pääset tiedotuskanavalle.
|
||||
<Link to={TG_GROUP_CHAT_LINK} target="_blank">Tästä</Link> pääset tutustumaan fuksikavereihisi sekä ISOihin ja <Link to={TG_NOTIFICATIONS_LINK} target="_blank">tästä</Link> pääset tiedotuskanavalle.
|
||||
</p>
|
||||
|
||||
<h6>Matka nimeltä Teekkarius</h6>
|
||||
@@ -58,7 +60,7 @@ const FreshmenPageView: React.FC = () => (
|
||||
|
||||
<ImageContainer>
|
||||
<Image
|
||||
src="https://static.sahkoinsinoorikilta.fi/uus_webi/fuksikipparit-2023.jpg"
|
||||
src="https://static.sahkoinsinoorikilta.fi/FTMK/kipparit-26.jpg"
|
||||
alt="Kipparit"
|
||||
layout="responsive"
|
||||
width={100}
|
||||
@@ -69,7 +71,8 @@ const FreshmenPageView: React.FC = () => (
|
||||
|
||||
<h6>Fuksikapteenit</h6>
|
||||
<p>
|
||||
Me olemme fuksikapteenisi <strong>Aaron</strong> ja <strong>Kasper</strong> ja tulemme olemaan tukenasi sekä valvomassa suorituksiasi fuksivuoden seikkailuissa kohti teekkarilakkia, jonka voit ansaita mahdollisesti järjestettävänä Wappuna ensi keväällä.
|
||||
Me olemme fuksikapteenisi <strong>Teemu</strong> ja <strong>Henri</strong> ja tulemme olemaan tukenasi sekä valvomassa suorituksiasi fuksivuoden seikkailuissa kohti teekkarilakkia,
|
||||
jonka voit ansaita mahdollisesti järjestettävänä Wappuna ensi keväällä.
|
||||
Jos sinulla on mitään kysymyksiä, ota ihmeessä meihin yhteyttä esimerkiksi <Link to={TG_GROUP_CHAT_LINK} target="_blank">Telegramissa</Link> tai <a href={EMAIL_LINK_MAILTO}>sähköpostitse</a>.
|
||||
</p>
|
||||
|
||||
@@ -79,14 +82,15 @@ const FreshmenPageView: React.FC = () => (
|
||||
Ajan myötä palapelin palat muodostavat sinun näköisesi kuvan ja pääset itse vaikuttamaan siihen, miltä lopputulos näyttää.
|
||||
</p>
|
||||
<p>
|
||||
Orientaatioviikko järjestetään 28.8.-1.9.2023, mutta jo ennen sitä sinulla on mahdollisuus tulla tutustumaan meihin, muihin fuksiehin ja ISOihin rennon Varaslähtöön. Varaslähtö fuksivuoteen järjestetään 19.8.2023. Siitä lisää Telegram-ryhmissä!
|
||||
Orientaatioviikko järjestetään 25.-29.8.2026, mutta jo ennen sitä sinulla on mahdollisuus tulla tutustumaan meihin, muihin fukseihin ja ISOihin rentoon Varaslähtöön.
|
||||
Varaslähtö fuksivuoteen järjestetään lauantaina 16.8.2026. Siitä lisää Telegram-ryhmissä!
|
||||
</p>
|
||||
|
||||
<h6>Aaron Löfgren</h6>
|
||||
<p>040 484 5418<br />aaron.lofgren (ät) sahkoinsinoorikilta.fi <br />@aaronlofgren</p>
|
||||
<h6>Teemu Heikkinen</h6>
|
||||
<p>040 097 1835<br />teemu.heikkinen (ät) sahkoinsinoorikilta.fi <br />@heikkinenteemu</p>
|
||||
|
||||
<h6>Kasper Skog</h6>
|
||||
<p>040 667 5266<br />kasper.skog (ät) sahkoinsinoorikilta.fi <br />@Skooogi</p>
|
||||
<h6>Henri Aito</h6>
|
||||
<p>045 328 2883<br />henri.aito (ät) sahkoinsinoorikilta.fi <br />@henriaito</p>
|
||||
</div>
|
||||
<aside>
|
||||
<div>
|
||||
@@ -94,7 +98,7 @@ const FreshmenPageView: React.FC = () => (
|
||||
Fuksikipparit tavoitat
|
||||
</PageLink>
|
||||
<PageLink to="https://api.sahkoinsinoorikilta.fi/members/application" desc="ja tule mukaan toimintaamme ›">
|
||||
Liity jäseneksi
|
||||
Liity jäseneksi tästä
|
||||
</PageLink>
|
||||
<PageLink to={FUKSI_POINTS_LINK} desc="Katso fuksipisteitä ›">
|
||||
Fuksipisteohje
|
||||
@@ -103,14 +107,15 @@ const FreshmenPageView: React.FC = () => (
|
||||
<div>
|
||||
<InfoBox>
|
||||
<h6>Killan Fuksiopas</h6>
|
||||
<Link to="https://static.sahkoinsinoorikilta.fi/FTMK/Fuksiopas2023.pdf" target="_blank">
|
||||
<Link to="https://static.sahkoinsinoorikilta.fi/FTMK/Fopas_25_web.pdf" target="_blank">
|
||||
<FopasImage
|
||||
src="https://static.sahkoinsinoorikilta.fi/FTMK/Fuksiopas2023-kansi.png"
|
||||
src="https://static.sahkoinsinoorikilta.fi/FTMK/Fopas_25_kansi.jpg"
|
||||
/>
|
||||
</Link>
|
||||
|
||||
<p>
|
||||
Ennen opintojen alkua on hyvä tutustua killan fuksioppaaseen. Sitä pääset selailemaan <Link to="https://static.sahkoinsinoorikilta.fi/FTMK/Fuksiopas2023.pdf" target="_blank"> tästä.</Link>
|
||||
Ennen opintojen alkua on hyvä tutustua killan fuksioppaaseen.
|
||||
Oppaan pääset lukemaan tästä!
|
||||
</p>
|
||||
<br />
|
||||
<h6>Telegram?</h6>
|
||||
@@ -123,12 +128,12 @@ const FreshmenPageView: React.FC = () => (
|
||||
SIK:n fukseilla on oma Telegram-ryhmä, jonne pääset liitymään tästä:
|
||||
</p>
|
||||
<QRImages
|
||||
src="https://static.sahkoinsinoorikilta.fi/FTMK/sik-fuksit-2023.jpg"
|
||||
src={SIK_QR}
|
||||
/>
|
||||
<p>tai <Link to={TG_GROUP_CHAT_LINK} target="_blank">tästä</Link></p>
|
||||
<p>Liity myös samalla SIK-fuksien tiedotuskanavalle tästä:</p>
|
||||
<QRImages
|
||||
src="https://static.sahkoinsinoorikilta.fi/FTMK/sik-fuksit-2023-tiedotus.jpg"
|
||||
src={SIK_QR_TIEDOTUS}
|
||||
/>
|
||||
<p>tai <Link to={TG_NOTIFICATIONS_LINK} target="_blank">tästä</Link></p>
|
||||
</InfoBox>
|
||||
@@ -150,10 +155,14 @@ const FreshmenPageView: React.FC = () => (
|
||||
SIK:n fuksit nauttivat hurmaavien ISOjen opastuksesta ja hellästä huolenpidosta omissa fuksiryhmissään.
|
||||
</p>
|
||||
<p>
|
||||
ISOt ovat hiukan vanhempia opiskelijoita ja kiltalaisia, joiden tehtävänä on olla tukenasi fuksivuoden ajan. Ensimmäisenä päivänä teidät jaetaan noin kymmenen hengen fuksiryhmiin ja jokaiseen ryhmään kuuluu kolmesta viiteen ISOa, joista yksi toimii opintoISOna. ISOilta voit kysyä mitä vain opiskeluun ja opiskelijaelämään liittyen. Vaikka he eivät tietäisi vastausta, he luultavimmin osaavat auttaa sinua vastausten löytämisessä.
|
||||
ISOt ovat hiukan vanhempia opiskelijoita ja kiltalaisia, joiden tehtävänä on olla tukenasi fuksivuoden ajan.
|
||||
Ensimmäisenä päivänä teidät jaetaan noin kymmenen hengen fuksiryhmiin ja jokaiseen ryhmään kuuluu kolmesta viiteen ISOa, joista yksi toimii opintoISOna.
|
||||
ISOilta voit kysyä mitä vain opiskeluun ja opiskelijaelämään liittyen. Vaikka he eivät tietäisi vastausta, he luultavimmin osaavat auttaa sinua vastausten löytämisessä.
|
||||
</p>
|
||||
<p>
|
||||
Kuten sanottu ISOt tukevat sinua koko fuksivuoden ajan, mutta eniten tulet näkemään heitä Orientaatioviikolla, jolloin he kulkevat fuksiryhmäsi kanssa ympäri Otaniemeä ja avaavat ovia teekkariuden saloihin. He auttavat sinua myös löytämään opintojen aloittamiseen tarvittavat asiat ja tukevat esimerkiksi lukujärjestyksen tekemisessä ja kirjastokortin, sekä matkakortin ja opiskelijakortin hankkimisessa.
|
||||
Kuten sanottu, ISOt tukevat sinua koko fuksivuoden ajan, mutta eniten tulet näkemään heitä Orientaatioviikolla,
|
||||
jolloin he kulkevat fuksiryhmäsi kanssa ympäri Otaniemeä ja avaavat ovia teekkariuden saloihin.
|
||||
He auttavat sinua myös löytämään opintojen aloittamiseen tarvittavat asiat ja tukevat esimerkiksi lukujärjestyksen tekemisessä sekä kirjastokortin, matkakortin ja opiskelijakortin hankkimisessa.
|
||||
</p>
|
||||
<p>
|
||||
ISOt ovat myös kutsuttuna fuksivuotesi ensimmäiseen tapahtumaan, eli Varaslähtöön. Tule tutustumaan heihin jo siellä!
|
||||
|
||||
@@ -30,7 +30,7 @@ const FrontPageHero: React.FC = () => (
|
||||
<HeroAsideItem
|
||||
header="Vasta-aloittaneelle opiskelijalle"
|
||||
text="Fuksikasvatusta ja ISOtoimintaa"
|
||||
link="/kilta/fuksi"
|
||||
link="/newStudent/fuksi"
|
||||
linkText="Fuksit ›"
|
||||
/>
|
||||
<HeroAsideItem
|
||||
|
||||
@@ -24,7 +24,11 @@ const Fingrid = "https://static.sahkoinsinoorikilta.fi/img/corporate_logos/fingr
|
||||
const Okmetic = "https://static.sahkoinsinoorikilta.fi/img/corporate_logos/okmetic.jpg";
|
||||
const Nokia = "https://static.sahkoinsinoorikilta.fi/img/corporate_logos/nokia.jpg";
|
||||
const Granlund = "https://static.sahkoinsinoorikilta.fi/img/corporate_logos/granlund.jpg";
|
||||
const GE = "https://static.sahkoinsinoorikilta.fi/img/corporate_logos/GE.png";
|
||||
const Eaton = "https://static.sahkoinsinoorikilta.fi/img/corporate_logos/eaton.png";
|
||||
const Ericsson = "https://static.sahkoinsinoorikilta.fi/img/corporate_logos/ericsson.png";
|
||||
const Saab = "https://static.sahkoinsinoorikilta.fi/img/corporate_logos/Saab.png";
|
||||
const STUL = "https://static.sahkoinsinoorikilta.fi/img/corporate_logos/stul_logo.png";
|
||||
const Metso = "https://static.sahkoinsinoorikilta.fi/img/corporate_logos/Metso-logo.png";
|
||||
|
||||
interface FrontPageViewProps {
|
||||
events: Event[];
|
||||
@@ -112,8 +116,20 @@ const FrontPageView: React.FC<FrontPageViewProps> = ({ events, feed }) => (
|
||||
<Link to="https://www.granlund.fi/">
|
||||
<Image src={Granlund} alt="Granlund" layout="responsive" width={200} height={100} objectFit="contain" />
|
||||
</Link>
|
||||
<Link to="https://www.gehealthcare.fi/">
|
||||
<Image src={GE} alt="GE" layout="responsive" width={200} height={100} objectFit="contain" />
|
||||
<Link to="https://www.eaton.com/fi/fi-fi.html">
|
||||
<Image src={Eaton} alt="Eaton" layout="responsive" width={200} height={100} objectFit="contain" />
|
||||
</Link>
|
||||
<Link to="https://www.ericsson.com/en">
|
||||
<Image src={Ericsson} alt="Ericsson" layout="responsive" width={200} height={100} objectFit="contain" />
|
||||
</Link>
|
||||
<Link to="https://www.saab.com/fi/markets/finland">
|
||||
<Image src={Saab} alt="Saab" layout="responsive" width={200} height={100} objectFit="contain" />
|
||||
</Link>
|
||||
<Link to="https://www.stul.fi/">
|
||||
<Image src={STUL} alt="STUL" layout="responsive" width={200} height={100} objectFit="contain" />
|
||||
</Link>
|
||||
<Link to="https://www.metso.com/fi/">
|
||||
<Image src={Metso} alt="Metso" layout="responsive" width={200} height={100} objectFit="contain" />
|
||||
</Link>
|
||||
</div>
|
||||
<Link to="/yritysyhteistyo">Haluatko kuulla lisää yhteistyöstä kanssamme?</Link>
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
import React from "react";
|
||||
import { TextSection } from "@components/index";
|
||||
|
||||
const FundPageView: React.FC = () => (
|
||||
<TextSection>
|
||||
<h1>Kilta-avustus</h1>
|
||||
<div>
|
||||
<p>
|
||||
Aalto-yliopiston Sähköinsinöörikillan vuosittaisesta budjetista on varattu osa kiltalaisten erilaisten projektien toteuttamiseen.
|
||||
Kilta-avustuksen tarkoitus on antaa jokaiselle kiltalaiselle mahdollisuus toteuttaa uusia ideoita, jotka edistävät killan toimintaa.
|
||||
</p>
|
||||
<p>Kilta voi myöntää taloudellista tukea esimerkiksi tapahtumien järjestämiseen, tilavuokrien kattamiseen tai tarvikehankintoihin, joille ei ole erikseen varattu budjettia killan talousarviossa.
|
||||
Kilta-avustusta voi hakea kuka tahansa killan jäsen.
|
||||
Hakemuksesta täytyy tulla ilmi vähintään hakemuksen tekijä(t), mihin avustusta haetaan sekä arvio projektin kustannuksista. Hallitus tekee päätöksen hakemuksesta seuraavassa kokouksessaan.
|
||||
Mikäli tarkentavia kysymyksiä ei tule esille, hallitus tiedottaa päätöksestä hakijalle.
|
||||
</p>
|
||||
<p>Mikäli hallitus hyväksyy hakemuksen, avustus tulee käyttää ainoastaan myönnettyyn tarkoitukseen. Ota talteen kuitit kulukorvausta varten, lisäksi laadi raportti siitä, miten avustus on käytetty ja lähetä se
|
||||
osoitteeseen <a href="mailto:hallitus@sahkoinsinoorikilta.fi">hallitus@sahkoinsinoorikilta.fi</a>. Lähetä kulukorvaus osoitteeseen <a href="mailto:rahastonhoitaja@sahkoinsinoorikilta.fi">rahastonhoitaja@sahkoinsinoorikilta.fi</a>.
|
||||
</p>
|
||||
</div>
|
||||
</TextSection>
|
||||
);
|
||||
|
||||
export default FundPageView;
|
||||
@@ -58,7 +58,8 @@ const GuildPageView: React.FC = () => (
|
||||
<p>
|
||||
on opiskelijajärjestö, joka kokoaa yhteen laaja-alaisesti sähkötekniikan osaajia elektroniikasta nanoteknologiaan ja akustiikkaan.
|
||||
Sähköinsinöörikilta, tuttavallisemmin SIK, on perustettu vuonna 1921, ja sillä on nykyään yli 500 sähkötekniikkaa opiskelevaa tai yhdistyksestä muuten kiinnostunutta jäsentä.
|
||||
Killan tarkoitus on ajaa jäsentensä etua Aalto-yliopistossa ja <Link to="https://www.aalto.fi/fi/sahkotekniikan-korkeakoulu">Sähkötekniikan korkeakoulussa ELEC:ssä</Link>, huolehtia jäsenten hyvinvoinnista, edistää jäsenten ammatillista osaamista ja ylläpitää teekkarihenkeä.
|
||||
Killan tarkoitus on ajaa jäsentensä etua Aalto-yliopistossa ja <Link to="https://www.aalto.fi/fi/sahkotekniikan-korkeakoulu">Sähkötekniikan korkeakoulussa ELEC:ssä</Link>,
|
||||
huolehtia jäsenten hyvinvoinnista, edistää jäsenten ammatillista osaamista ja ylläpitää teekkarihenkeä.
|
||||
</p>
|
||||
<p>
|
||||
Jäsenten hyvinvoinnista kilta huolehtii järjestämällä vastapainoa opiskelulle erilaisten tapahtumien, kuten juhlien, saunailtojen ja urheilun muodossa.
|
||||
@@ -67,7 +68,7 @@ const GuildPageView: React.FC = () => (
|
||||
<p>
|
||||
Kilta järjestää vierailuja monipuolisesti alan yrityksiin ja järjestää yritystapahtumia.
|
||||
Kiltatoiminnassa käytetään samoja työkaluja, kuin yritysmaailmassa, ja kiltatoiminta pyrkii myös valmentamaan opiskelijoita työelämään.
|
||||
Ammatillista osaamista ja sähkötekniikan harrastamista tuetaan ylläpitämällä <Link to="#palvelut">Elektroniikkapajaa</Link>, jossa kiltalaiset voivat tehdä omia projektejaan.
|
||||
Ammatillista osaamista ja sähkötekniikan harrastamista tuetaan ylläpitämällä <Link to="#palvelut">SIK-pajaa</Link>, jossa kiltalaiset voivat tehdä omia projektejaan.
|
||||
Kiltalaisten voimin julkaistaan myös kiltalehti <Link to="https://sosso.fi">Sössöä</Link>, jossa on artikkeleita koskien niin kiltatoimintaa, opiskelua kuin vapaa-ajan harrastuksiakin.
|
||||
</p>
|
||||
</div>
|
||||
@@ -102,14 +103,14 @@ const GuildPageView: React.FC = () => (
|
||||
</div>
|
||||
<aside>
|
||||
<div>
|
||||
<PageLink to="/yhteystiedot" desc="löydät täältä ›">
|
||||
Hallituksen ja toimihenkilöiden yhteystiedot
|
||||
<PageLink to="/kilta/hallitus" desc="löydät täältä ›">
|
||||
Hallituksen jäsenten yhteystiedot
|
||||
</PageLink>
|
||||
<PageLink to="https://static.sahkoinsinoorikilta.fi/Poytakirjat/" desc="löydät täältä ›">
|
||||
Hallituksen kuulumiset
|
||||
</PageLink>
|
||||
<PageLink to="https://static.sahkoinsinoorikilta.fi/saannot/killansaannot.pdf" desc="löydät täältä ›">
|
||||
Säännöt
|
||||
Killan säännöt
|
||||
</PageLink>
|
||||
</div>
|
||||
</aside>
|
||||
@@ -126,7 +127,7 @@ const GuildPageView: React.FC = () => (
|
||||
Kiltatoiminnassa tutustut uusiin ihmisiin ja opit monia työelämässä tarpeellisia taitoja.
|
||||
Kiltatoiminta on hyvä tilaisuus kokeilla ja opetella aivan uusia asioita, sillä missään tehtävässä ei vaadita pitkää listaa esitietoja.
|
||||
Tehtävien työmäärä riippuu tehtävästä ja toimikunnasta, mutta yleisesti toiminta on hyvin joustavaa.
|
||||
Jos sinulla on kysymyksiä koskien kiltatoimintaa tai jotain tiettyä tehtävää, ota yhteyttä <Link to="/yhteystiedot">nykyisiin toimijoihin!</Link>
|
||||
Jos sinulla on kysymyksiä koskien kiltatoimintaa tai jotain tiettyä tehtävää, ota yhteyttä <Link to="/kilta/toimihenkilot">nykyisiin toimijoihin!</Link>
|
||||
</p>
|
||||
</FullWidthSection>
|
||||
<FullWidthSection>
|
||||
@@ -154,7 +155,7 @@ const GuildPageView: React.FC = () => (
|
||||
Tapahtumien, edunvalvonnan ja yrityskontaktien lisäksi kilta ylläpitää Maarintie 8:ssa sijaitsevaa kiltahuonetta, jossa kiltalaiset voivat viettää vapaasti aikaa opiskellen tai vapaa-ajan merkeissä.
|
||||
Kiltahuone on kaikille avoin tila, johon voi kuka tahansa vapaasti tulla rakennuksen aukioloaikojen puitteissa.
|
||||
Kiltahuoneella voi pelailla, lukea lehtiä ja nauttia kiltahuoneen myyntituotteista.
|
||||
Kiltahuoneella pidetään monesti kokouksia, peli-iltoja ja käytetään sitä myös opiskeluun.
|
||||
Kiltahuoneella pidetään monesti kokouksia, peli-iltoja ja käytetään sitä myös opiskeluunkin.
|
||||
Tilavaan huoneeseen mahtuu tekemään monenlaista samaan aikaan!
|
||||
</p>
|
||||
<p>
|
||||
@@ -162,8 +163,8 @@ const GuildPageView: React.FC = () => (
|
||||
Lehti ilmestyy fyysisenä lehtenä pari kertaa vuodessa, ja lisäksi artikkeleita ilmestyy sähköisessä muodossa painettujen lehtien välillä.
|
||||
</p>
|
||||
<p>
|
||||
Kiltalaisten omia projekteja varten kilta ylläpitää Otakaari 1:ssä sijaitsevaa <Link to="https://elepaja.ayy.fi">Elektroniikkapajaa</Link>, josta löytyy tarvikkeita, työkaluja ja tilat monenlaisia töitä varten.
|
||||
Jos haluat tutustua tiloihin, ota yhteyttä <Link to="/yhteystiedot#eptmk">pajavastaavaan</Link>!
|
||||
Kiltalaisten omia projekteja varten kilta ylläpitää Otakaari 1:ssä sijaitsevaa SIK-pajaa, josta löytyy tarvikkeita, työkaluja ja tilat monenlaisia töitä varten.
|
||||
Jos haluat tutustua tiloihin, ota yhteyttä <Link to="/kilta/toimihenkilot#ptmk">pajamestariin</Link>!
|
||||
</p>
|
||||
</div>
|
||||
<aside>
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
import { useState, useEffect } from "react";
|
||||
import mqtt from "mqtt";
|
||||
import { TextSection } from "@components/index";
|
||||
import styled from "styled-components";
|
||||
|
||||
const CoffeeTitle = styled.div`
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 3rem;
|
||||
font-weight: bold;
|
||||
`;
|
||||
|
||||
const Cups = styled.div`
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 7rem;
|
||||
font-variant-numeric: tabular-nums;
|
||||
`;
|
||||
|
||||
const Time = styled.div`
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 1rem;
|
||||
`;
|
||||
|
||||
const GuildroomView = () => {
|
||||
const [brewing, setBrewing] = useState<boolean>(false);
|
||||
const [time, setTime] = useState<number>(0);
|
||||
const [cups, setCups] = useState<number>(0);
|
||||
const [client, setClient] = useState<mqtt.MqttClient | null>(null);
|
||||
const [status, setStatus] = useState<boolean>(false);
|
||||
|
||||
useEffect(() => {
|
||||
setStatus(false);
|
||||
if (process.env.NEXT_PUBLIC_MQTT_HOST) {
|
||||
setClient(mqtt.connect(`wss://${process.env.NEXT_PUBLIC_MQTT_HOST}`));
|
||||
} else {
|
||||
console.error("MQTT host undefined");
|
||||
}
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (client) {
|
||||
client.on("connect", () => {
|
||||
setStatus(true);
|
||||
client.subscribe("sik/kiltahuone/kahvivaaka/#", (err) => {
|
||||
if (!err) {
|
||||
console.log("Connected to MQTT server!");
|
||||
}
|
||||
});
|
||||
});
|
||||
client.on("error", (err) => {
|
||||
console.error("Connection error: ", err);
|
||||
client.end();
|
||||
});
|
||||
client.on("reconnect", () => {
|
||||
setStatus(false);
|
||||
});
|
||||
client.on("offline", () => {
|
||||
setStatus(false);
|
||||
});
|
||||
client.on("message", (topic, message) => {
|
||||
if (topic === "sik/kiltahuone/kahvivaaka/cups") {
|
||||
setCups(Number(message.toString()));
|
||||
}
|
||||
if (topic === "sik/kiltahuone/kahvivaaka/brewtime") {
|
||||
setTime(Number(message.toString()));
|
||||
}
|
||||
if (topic === "sik/kiltahuone/kahvivaaka/brewing") {
|
||||
setBrewing(Boolean(message.toString()));
|
||||
}
|
||||
});
|
||||
}
|
||||
}, [client]);
|
||||
|
||||
if (!status) {
|
||||
return (
|
||||
<CoffeeTitle style={{ margin: "10%" }}>NO MQTT CONNECTION</CoffeeTitle>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<div style={{ margin: "10%" }}>
|
||||
<CoffeeTitle>{brewing ? "Brewing more..." : "Cups left"}</CoffeeTitle>
|
||||
<Cups>{cups}</Cups>
|
||||
<Time>Brewed {time} min ago</Time>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default GuildroomView;
|
||||
@@ -25,7 +25,7 @@ const HonoraryPageView: React.FC = () => (
|
||||
<li>Seppo Saastamoinen 2022-</li>
|
||||
</ul>
|
||||
<h2>Oltermannit</h2>
|
||||
<p>Oltermanni on yhdyshenkilö killan ja opettajakunnan välillä. Valtuusto valitsee oltermannin kolmeksi vuodeksi kerrallaan.</p>
|
||||
<p>Oltermanni on yhdyshenkilö killan ja opettajakunnan välillä. Killan yleinen kokous valitsee oltermannin kolmeksi vuodeksi kerrallaan.</p>
|
||||
<ul>
|
||||
<li>Martti Paavola 1946–1965</li>
|
||||
<li>Martti Tiuri 1965–1968</li>
|
||||
@@ -40,10 +40,15 @@ const HonoraryPageView: React.FC = () => (
|
||||
<li>Keijo Nikoskinen 2011–2014</li>
|
||||
<li>Jussi Ryynänen 2014–2017</li>
|
||||
<li>Ville Viikari 2017–2020</li>
|
||||
<li>Anu Lehtovuori 2020–</li>
|
||||
<li>Anu Lehtovuori 2020–2026</li>
|
||||
<li>Marko Hinkkanen 2026-</li>
|
||||
</ul>
|
||||
<h2>Pro SIK</h2>
|
||||
<p>Pro SIK -maininnan voi saada killan toiminnassa ansioitunut, yleensä valmistunut tai valmistumisvaiheessa oleva henkilö. Pro SIK myönnetään vuosittain Potentiaalin Tasauksen yhteydessä.</p>
|
||||
<p>
|
||||
ProSIK-kunniamaininnan voi saada killan toiminnassa ansioitunut,
|
||||
yleensä valmistunut tai valmistumisvaiheessa oleva henkilö.
|
||||
ProSIK-kunniamaininta myönnetään vuosittain Potentiaalin Tasauksessa.
|
||||
</p>
|
||||
<ul>
|
||||
<li>1984 Mikko J. Salminen</li>
|
||||
<li>1985 Mika Sorvettula, Matti Carpén</li>
|
||||
@@ -85,6 +90,10 @@ const HonoraryPageView: React.FC = () => (
|
||||
<li>2021 Essi Jukkala</li>
|
||||
<li>2022 Erna Virtanen, Tuukka Syrjänen</li>
|
||||
<li>2023 Emmaleena Ahonen</li>
|
||||
<li>2024 Jonna Tammikivi</li>
|
||||
<li>2025 Eveliina Ahonen</li>
|
||||
<li>2026 Otto Julkunen</li>
|
||||
<li>2026 Melisa Dönmez</li>
|
||||
</ul>
|
||||
<h2>Standaari</h2>
|
||||
<p>Standaari voidaan hallituksen päätöksellä lahjoittaa killan toimintaan myönteisesti vaikuttaneille tahoille. Standaarit on numeroitu lahjoittamisjärjestyksessä.</p>
|
||||
@@ -107,7 +116,9 @@ const HonoraryPageView: React.FC = () => (
|
||||
</ul>
|
||||
<h2>Kultaiset ansiomerkit</h2>
|
||||
<p>
|
||||
Kultainen ansiomerkki voidaan myöntää killan jäsenelle tai perustellusta syystä myös muulle henkilölle, joka on osoittanut ylitsevuotavaa kiinnostusta kiltaa sekä sen toimintaa kohtaan, joka on pitkään toiminut aktiivisesti killan hyväksi ja joka esimerkillään innostaa myös muita entistä aktiivisempaan toimintaan killan parissa.
|
||||
Kultainen ansiomerkki voidaan myöntää killan jäsenelle tai perustellusta syystä myös muulle henkilölle,
|
||||
joka on osoittanut ylitsevuotavaa kiinnostusta kiltaa sekä sen toimintaa kohtaan, joka on pitkään toiminut aktiivisesti killan hyväksi
|
||||
ja joka esimerkillään innostaa myös muita entistä aktiivisempaan toimintaan killan parissa.
|
||||
Vastaava merkki jaettiin vuoteen 2006 asti hallitukselle edustusmerkkinä.
|
||||
</p>
|
||||
<ul>
|
||||
@@ -213,8 +224,26 @@ const HonoraryPageView: React.FC = () => (
|
||||
<li>2023 Mikael Liimatainen</li>
|
||||
<li>2023 Jami Hyytiäinen</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>2024 Eveliina Ahonen</li>
|
||||
<li>2024 Melisa Dönmez</li>
|
||||
<li>2024 Pyry Vaara</li>
|
||||
<li>2024 Suvi Karanta</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>2025 Otto Julkunen</li>
|
||||
<li>2025 Juulia Härkönen</li>
|
||||
<li>2025 Iikka Huttu</li>
|
||||
<li>2025 Heidi Mäkitalo</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>2026 Aaron Löfgren</li>
|
||||
<li>2025 Elina Huttunen</li>
|
||||
<li>2026 Karoliina Talvikangas</li>
|
||||
<li>2026 Tommi Sytelä</li>
|
||||
</ul>
|
||||
<h2>Hopeiset ansiomerkit</h2>
|
||||
<p>Killan hallitus voi myöntää hopeitosen ansiomerkin killan jäsenelle tai perustellusta syystä myös muulle henkilölle tunnustuksena erityisestä kiinnostuksesta kiltaa kohtaan sekä ansioituneesta toiminnasta killan hyväksi.</p>
|
||||
<p>Killan hallitus voi myöntää hopeisen ansiomerkin killan jäsenelle tai perustellusta syystä myös muulle henkilölle tunnustuksena erityisestä kiinnostuksesta kiltaa kohtaan sekä ansioituneesta toiminnasta killan hyväksi.</p>
|
||||
<ul>
|
||||
<li>1996 Saila Kolehmainen</li>
|
||||
</ul>
|
||||
@@ -578,6 +607,52 @@ const HonoraryPageView: React.FC = () => (
|
||||
<li>2022 Tuomas Pajunpää</li>
|
||||
<li>2022 Ville-Pekka Laakkonen</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>2023 Aleksanteri Vesala</li>
|
||||
<li>2023 Eero Ketonen</li>
|
||||
<li>2023 Emilia Sundholm</li>
|
||||
<li>2023 Emma Reinikainen</li>
|
||||
<li>2023 Esko Väänänen</li>
|
||||
<li>2023 Eveliina Ahonen</li>
|
||||
<li>2023 Heidi Mäkitalo</li>
|
||||
<li>2023 Iikka Huttu</li>
|
||||
<li>2023 Melina Sundell</li>
|
||||
<li>2023 Melisa Dönmez</li>
|
||||
<li>2023 Miku Männistö</li>
|
||||
<li>2023 Nestori Yrjönkoski</li>
|
||||
<li>2023 Salla Lyytikäinen</li>
|
||||
<li>2023 Tommi Oinonen</li>
|
||||
<li>2023 Verneri Turkki</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>2024 Aaron Löfgren</li>
|
||||
<li>2024 Elina Huttunen</li>
|
||||
<li>2024 Janne Sjöblom</li>
|
||||
<li>2024 Jenni Marttinen</li>
|
||||
<li>2024 Julia Pykälä-Aho</li>
|
||||
<li>2024 Juulia Härkönen</li>
|
||||
<li>2024 Karoliina Talvikangas</li>
|
||||
<li>2024 Kasper Skog</li>
|
||||
<li>2024 Nette Levijoki</li>
|
||||
<li>2024 Oona Karjalainen</li>
|
||||
<li>2024 Tommi Sytelä</li>
|
||||
<li>2024 Veikko Räty</li>
|
||||
<li>2024 Visa Kurvi</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>2025 Alisa Ahonen</li>
|
||||
<li>2025 Axel Aurola</li>
|
||||
<li>2025 Axel Söderberg</li>
|
||||
<li>2025 Leevi Oikarinen</li>
|
||||
<li>2025 Liisa Haltia</li>
|
||||
<li>2025 Mikael Siikonen</li>
|
||||
<li>2025 Mikko Sandström</li>
|
||||
<li>2025 Peter Lindahl</li>
|
||||
<li>2025 Roope Jaskari</li>
|
||||
<li>2025 Sauli Hakala</li>
|
||||
<li>2025 Valentin Juhela</li>
|
||||
<li>2025 Ville Lairila</li>
|
||||
</ul>
|
||||
</div>
|
||||
</TextSection>
|
||||
</>
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
/* eslint-disable max-len */
|
||||
import React from "react";
|
||||
import breakpoints from "@theme/breakpoints";
|
||||
import styled from "styled-components";
|
||||
@@ -50,25 +51,43 @@ const InEnglishPageView: React.FC<InEnglishPageViewProps> = ({ events, feed }) =
|
||||
<InEnglishPageHero />
|
||||
<main>
|
||||
<TextSection>
|
||||
<h3 id="guild">
|
||||
Guild
|
||||
</h3>
|
||||
<h3 id="guild">Guild</h3>
|
||||
<div>
|
||||
<p>
|
||||
What is a guild and what can it offer?
|
||||
</p>
|
||||
<p>What is a guild and what can it offer?</p>
|
||||
<div>
|
||||
<h6>Aalto University's Guild of Electrical Engineering</h6>
|
||||
<p>Aalto University's Guild of Electrical Engineering is an association of electrical engineering students in Aalto University. The guild was found in 1921 and it has now more than 500 members who are studying electrical engineering or are otherwise interested in the guild. The purpose of the guild is to serve the interests of its members at Aalto University and at the School of Electrical Engineering (ELEC). The guild also takes care of the well-being of its members, promotes professional skills and maintains teekkari spirit. To counterbalance studying the guild arranges various events like parties, sauna evenings and sports. The guild room at Maarintie 8 serves as a meeting place for guild members. In the guild room, members can study, spend time and meet other members. The guild organizes company visits and excursions. The guild uses same tools as in the business world. Professional competence and practicing electronics are supported also by maintaining electronics workshop where guild members can do their own projects.</p>
|
||||
<p>
|
||||
Aalto University's Guild of Electrical Engineering is an association of electrical engineering students in Aalto University. The guild was founded in 1921 and it now has more than 300 members who are studying electrical engineering or are otherwise interested in the guild. The purpose of the guild is to serve the interests of its members at Aalto University and at the School of Electrical Engineering (ELEC). The guild also takes care of the well-being of its members, promotes professional skills and maintains teekkari spirit. To counterbalance studying the guild arranges various events like parties, sauna evenings and sports. The guild room at Maarintie 8 serves as a meeting place for guild members. In the guild room, members can study, spend time and meet other members. The guild organizes company visits and excursions. The guild uses same tools as in the business world. Professional competence and practicing electronics are supported also by maintaining electronics workshop where guild members can do their own projects.
|
||||
</p>
|
||||
<h6>Responsibilities</h6>
|
||||
<p>The guild's responsibilities include ensuring that its members receive quality education and that they graduate with excellence knowledge in their field. For new students, the guild organizes freshman education, which introduces students to teekkariculture and studying in at the university. The guild provides counterbalance to studies in the form of various events and conveys information to its members about possible jobs and companies in the field. The guild is run by students. As a guild volunteer, you gain experience, which is also extremely precious later in working life.</p>
|
||||
<p>
|
||||
The guild's responsibilities include ensuring that its members receive quality education and that they graduate with excellence knowledge in their field. For new students, the guild organizes freshman education, which introduces students to teekkariculture and studying in at the university. The guild provides counterbalance to studies in the form of various events and conveys information to its members about possible jobs and companies in the field. The guild is run by students. As a guild volunteer, you gain experience, which is also extremely precious later in working life.
|
||||
</p>
|
||||
<h6>Guild board</h6>
|
||||
<p>The guild board is formed by 3-13 guild members, that are responsible for running the guild as an organization. The board consists of chairman, treasurer, secretary and other various roles. In addition, the board may have chairman of various committees of the guild, each with their own area of responsibility. The board normally meets once a week to make decisions and discuss issues related to the guild. If something is bothering your mind or you have a suggestion for improvement, the guild board is usually the right party to approach. In addition to the board, the daily life of the guild is run by a large number of staff, whose duties and responsibilites vary on their position. The board and guild officers are always elected for one year an electrocal meeting. Before the electrocal meeting, an application period for guild positions open to guild members is held. In addition to the year-long task, the guild has several sections where you can implement your ideas more freely without committing to a specific position.</p>
|
||||
<p>
|
||||
The guild board is formed by 3-13 guild members, that are responsible for running the guild as an organization. The board consists of chairman, treasurer, secretary and other various roles. In addition, the board may have chairman of various committees of the guild, each with their own area of responsibility. The board normally meets once a week to make decisions and discuss issues related to the guild. If something is bothering your mind or you have a suggestion for improvement, the guild board is usually the right party to approach. In addition to the board, the daily life of the guild is run by a large number of staff, whose duties and responsibilites vary on their position. The board and guild officers are always elected for one year an electoral meeting. Before the electrocal meeting, an application period for guild positions open to guild members is held. In addition to the year-long task, the guild has several sections where you can implement your ideas more freely without committing to a specific position.
|
||||
</p>
|
||||
<h6>Join the guild!</h6>
|
||||
<p>
|
||||
Anyone interested in the activities of the Guild of Electrical Engineering can become a member. Those wishing to become a member must fill in a membership application form and pay the membership fee. The link to the membership application form can be found <Link to="https://api.sahkoinsinoorikilta.fi/members/application/">here</Link>. Payment details can be found right below this.
|
||||
</p>
|
||||
<p>
|
||||
The guild's membership fee is paid by bank transfer to the guild's bank account. The payment details for the membership fee are below.
|
||||
</p>
|
||||
<ul>
|
||||
<li>Beneficiary: Aalto-yliopiston Sähköinsinöörikilta ry</li>
|
||||
<li>Account number: FI97 1309 3000 1118 23</li>
|
||||
<li>Reference: 1313</li>
|
||||
<li>Amount: 8 €</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<aside>
|
||||
<div>
|
||||
<PageLink to="https://api.sahkoinsinoorikilta.fi/members/application/" desc="and join our activities ›">
|
||||
<PageLink
|
||||
to="https://api.sahkoinsinoorikilta.fi/members/application/"
|
||||
desc="and join our activities ›"
|
||||
>
|
||||
Become a member
|
||||
</PageLink>
|
||||
</div>
|
||||
@@ -128,15 +147,25 @@ const InEnglishPageView: React.FC<InEnglishPageViewProps> = ({ events, feed }) =
|
||||
<p>Balance your studies and get connected</p>
|
||||
<div>
|
||||
<h6>Build everything related to electronics</h6>
|
||||
<p>SIK-PAJA is an electronics workshop run by the guild, where students get to apply skills they have learned at school in practical projects. Over time, students have built diverse projects in the workshop, such as their first LED overall badges, tesla windings, robots and radio transmitters. If you are interested in building electronics or you need help with a project, then come visit the workshop located at Otakaari 1 h023b. The workshop is equipped with basic tools such as circuit boards, etching tools, soldering tools, various components and a wide range of measuring equipment. You can join <Link to="https://t.me/sikpaja">sikpaja's Telegram group here</Link>.</p>
|
||||
<p>
|
||||
SIK-PAJA is an electronics workshop run by the guild, where students get to apply skills they have learned at school in practical projects. Over time, students have built diverse projects in the workshop, such as their first LED overall badges, tesla windings, robots and radio transmitters. If you are interested in building electronics or you need help with a project, then come visit the workshop located at Otakaari 1 h023b. The workshop is equipped with basic tools such as circuit boards, etching tools, soldering tools, various components and a wide range of measuring equipment. You can join <Link to="https://t.me/sikpaja">sikpaja's Telegram group here</Link>.
|
||||
</p>
|
||||
<h6>Sports events</h6>
|
||||
<p>The committee of Well Being runs many things in our guild. One of these is providing sports events to the guild members. In cooperation with other guilds, we regularly organize opportunities to play floorball and other sports. Sports tryouts are available throughout the year and are organized in co-operation with various sports organizations in Otaniemi. Keep your eyes open in the <Link to="#events">events</Link> section and join the <Link to="https://t.me/joinchat/DJRXxkKd0SMj0e9pBPXF1A/"> sports Telegram group.</Link></p>
|
||||
<p>
|
||||
The committee of Well Being runs many things in our guild. One of these is providing sports events to the guild members. In cooperation with other guilds, we regularly organize opportunities to play floorball and other sports. Sports tryouts are available throughout the year and are organized in co-operation with various sports organizations in Otaniemi. Keep your eyes open in the <Link to="#events">events</Link> section and join the <Link to="https://t.me/joinchat/DJRXxkKd0SMj0e9pBPXF1A/"> sports Telegram group.</Link>
|
||||
</p>
|
||||
<h6>Culture from culinarism to theater</h6>
|
||||
<p>In addition to sports events, the committee of Well Being also organizes cultural events for guild members. These cultural events include various types of events such as theater and museum visits. You can see the upcoming cutrural events from the <Link to="#events">events</Link> section.</p>
|
||||
<p>
|
||||
In addition to sports events, the committee of Well Being also organizes cultural events for guild members. These cultural events include various types of events such as theater and museum visits. You can see the upcoming cultural events from the <Link to="#events">events</Link> section.
|
||||
</p>
|
||||
<h6>Cooperation with companies</h6>
|
||||
<p>The guilds Corporate Relations committee is responsible for keeping the guild's economy afloat, but in addition to that they also offer guild members opportunities to network with top companies in the industry. Such opportunities are organized in the form of excursions, where guild members take tours in to the company's own premises and get to know the operations and staff, as well as in form of various corporate relations events in Otaniemi such as sauna evenings and annual corporate brunch. You can see the upcoming events in the <Link to="#events">events</Link> section.</p>
|
||||
<p>
|
||||
The guilds Corporate Relations committee is responsible for keeping the guild's economy afloat, but in addition to that they also offer guild members opportunities to network with top companies in the industry. Such opportunities are organized in the form of excursions, where guild members take tours in to the company's own premises and get to know the operations and staff, as well as in form of various corporate relations events in Otaniemi such as sauna evenings and annual corporate brunch. You can see the upcoming events in the <Link to="#events">events</Link> section.
|
||||
</p>
|
||||
<h6>Internationalize and build relationships</h6>
|
||||
<p>To the delight of the guild members, External Affairs committee organizes events with many organizations both in Finland and abroad. In these events you can make friends internationally. The External Affairs committee also organizes a lot of activites for exchange students that are definitely worth participating if you want to make friends around the globe.</p>
|
||||
<p>
|
||||
To the delight of the guild members, External Affairs committee organizes events with many organizations both in Finland and abroad. In these events you can make friends internationally. The External Affairs committee also organizes a lot of activites for exchange students that are definitely worth participating if you want to make friends around the globe.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</TextSection>
|
||||
@@ -178,7 +207,9 @@ const InEnglishPageView: React.FC<InEnglishPageViewProps> = ({ events, feed }) =
|
||||
<h3 id="finland">About Finland</h3>
|
||||
<div>
|
||||
<h6>Quick tour</h6>
|
||||
<p>Finland is a country with roughly 5,5 million inhabitants. Most of the people live in southern part of Finland, where the biggest cities Helsinki, Espoo, Vantaa, Turku and Tampere are. There are also notable cities in middle and northern parts like Oulu, Jyväskylä and Kuopio. Finland is often called the land of thousand lakes, because of its rougly 160000 lakes. Many of Finnish people own summer cottage, to which they flee for the summer. That is why many of the major cities are often empty during summer, especially in July. The reason why people often flee to their summer cottages is that they seek nature and silence to counterbalance their hectic worklife. Nature is one of the best things in Finland. We have four seasons, that differ from each other. That also means that the temperature rajge varies from -30 to 30 centigrade. Even though the lower spectrum might be suitable for polar bears, unfortunately there are none in Finland (except in the RanuaZoo).</p>
|
||||
<p>
|
||||
Finland is a country with roughly 5,5 million inhabitants. Most of the people live in southern part of Finland, where the biggest cities Helsinki, Espoo, Vantaa, Turku and Tampere are. There are also notable cities in middle and northern parts like Oulu, Jyväskylä and Kuopio. Finland is often called the land of thousand lakes, because of its rougly 160000 lakes. Many of Finnish people own summer cottage, to which they flee for the summer. That is why many of the major cities are often empty during summer, especially in July. The reason why people often flee to their summer cottages is that they seek nature and silence to counterbalance their hectic worklife. Nature is one of the best things in Finland. We have four seasons, that differ from each other. That also means that the temperature range varies from -30 to 30 centigrade. Even though the lower spectrum might be suitable for polar bears, unfortunately there are none in Finland (except in the RanuaZoo).
|
||||
</p>
|
||||
</div>
|
||||
</TextSection>
|
||||
|
||||
@@ -187,18 +218,27 @@ const InEnglishPageView: React.FC<InEnglishPageViewProps> = ({ events, feed }) =
|
||||
<div>
|
||||
<div>
|
||||
<h6>Telegram group 2023-2024</h6>
|
||||
<p>For starters, we recommend you join the <Link to="https://t.me/+ewiOhvuTXAcwODRk">Telegram-channel</Link> made for new exchange and master's students.</p>
|
||||
<p>
|
||||
For starters, we recommend you join the <Link to="https://t.me/+ewiOhvuTXAcwODRk">Telegram-channel</Link> made for new exchange and master's students.
|
||||
</p>
|
||||
<h6>Freshman points</h6>
|
||||
<p>What is student life like in Finland? What are the unique cool things to experience? To find out we recommend collecting the fuksi points (freshman points) to your fuksi point card. It's fun! The point card gives you a guideline to experiencing the student life and allows you to get a diploma with the privilege to wear the teekkari cap. Note that internationals are also fuksis on their first year in Aalto even though they are not really freshmen. Even Finns who change to a different study program get to be a fuksi again.</p>
|
||||
<p>
|
||||
What is student life like in Finland? What are the unique cool things to experience? To find out we recommend collecting the fuksi points (freshman points) to your fuksi point card. It's fun! The point card gives you a guideline to experiencing the student life and allows you to get a diploma with the privilege to wear the teekkari cap. Note that internationals are also fuksis on their first year in Aalto even though they are not really freshmen. Even Finns who change to a different study program get to be a fuksi again.
|
||||
</p>
|
||||
<h6>Overalls</h6>
|
||||
<p>The overalls are a special outfit that show which guild you belong to. They can be customized by sewing badges and attaching all kinds of items and decorations to them. In SIK we wear "clean white" overalls.</p>
|
||||
<p>
|
||||
The overalls are a special outfit that show which guild you belong to. They can be customized by sewing badges and attaching all kinds of items and decorations to them. In SIK we wear "clean white" overalls.
|
||||
</p>
|
||||
<h6>Teekkari cap</h6>
|
||||
<p>The teekkari cap is a white cap with a black tassel. It is the symbol of a teekkari and highly valued amongst us. Freshmen and internationals who complete their fuksi points get to put their new caps on during Wappu. Wappu is the biggest set of events of the student year. It begins in the last weeks of April and ends on the 1st of May.</p>
|
||||
<p>
|
||||
The teekkari cap is a white cap with a black tassel. It is the symbol of a teekkari and highly valued amongst us. Freshmen and internationals who complete their fuksi points get to put their new caps on during Wappu. Wappu is the biggest set of events of the student year. It begins in the last weeks of April and ends on the 1st of May.
|
||||
</p>
|
||||
<h6>International tutors</h6>
|
||||
<p>International tutors are volunteers that help international students in getting started with their studies and student life here at Aalto University, as well as getting settled in Finland. Tutors can also help with practical matters such as housing. The tutors will contact international students before their studies start.</p>
|
||||
<p>
|
||||
International tutors are volunteers that help international students in getting started with their studies and student life here at Aalto University, as well as getting settled in Finland. Tutors can also help with practical matters such as housing. The tutors will contact international students before their studies start.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</TextSection>
|
||||
|
||||
<Divider />
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
import React from "react";
|
||||
import {
|
||||
Hero, HeroPrimarySection, HeroAside, HeroAsideItem,
|
||||
} from "@components/Hero";
|
||||
|
||||
const MembershipPageHero: React.FC = () => (
|
||||
<Hero>
|
||||
<HeroPrimarySection
|
||||
header="Liity killan jäseneksi!"
|
||||
// eslint-disable-next-line max-len
|
||||
text="
|
||||
Kuka tahansa Sähköinsinöörikillan toiminnasta kiinnostunut voi liittyä killan jäseneksi.
|
||||
Jäseneksi haluavien tulee täyttää jäsenhakemus ja maksaa jäsenmaksu.
|
||||
Linkin jäsenhakemukseen löydät vierestä ja maksutiedot alempaa tältä sivulta."
|
||||
/>
|
||||
|
||||
<HeroAside bgColor="lightTurquoise">
|
||||
<HeroAsideItem
|
||||
header="Täytä jäsenhakemus"
|
||||
link="https://api.sahkoinsinoorikilta.fi/members/application"
|
||||
linkText="Hakemuslomake ›"
|
||||
/>
|
||||
<HeroAsideItem
|
||||
header="Maksa jäsenmaksu"
|
||||
link="#jasenmaksu"
|
||||
linkText="Maksutiedot ›"
|
||||
/>
|
||||
</HeroAside>
|
||||
</Hero>
|
||||
);
|
||||
|
||||
export default MembershipPageHero;
|
||||
@@ -0,0 +1,62 @@
|
||||
import React from "react";
|
||||
import {
|
||||
TextSection, Link,
|
||||
} from "@components/index";
|
||||
import MembershipPageHero from "./MembershipPageHero";
|
||||
|
||||
const MembershipPageView: React.FC = () => (
|
||||
<>
|
||||
<MembershipPageHero />
|
||||
<TextSection>
|
||||
<div>
|
||||
<h6>Killan jäsenet</h6>
|
||||
<p>
|
||||
Sähköinsinöörikillan jäsenenä saat oikeuden osallistua killan tapahtumiin
|
||||
sekä pääsyn killan tiloihin kuten kiltahuoneelle ja SIK-pajalle.
|
||||
</p>
|
||||
<p>
|
||||
Killan varsinaiseksi jäseneksi voidaan hyväksyä kaikki killan toiminnasta kiinnostuneet AYY:n jäsenet.
|
||||
Killan ulkojäseneksi voidaan hyväksyä jäsenmaksun maksanut henkilö, jota ei voida hyväksyä varsinaiseksi jäseneksi.
|
||||
Killan kannatusjäseneksi voidaan hyväksyä henkilö tai yhteisö, joka haluaa tukea killan toimintaa.
|
||||
</p>
|
||||
<p>
|
||||
Killan sääntöjen mukaan jäsenmaksuista määrätään seuraavasti:
|
||||
<br />
|
||||
</p>
|
||||
<p>
|
||||
<h5>8 § Jäsenmaksut</h5>
|
||||
<br />
|
||||
Jäsenet ovat velvollisia suorittamaan lukuvuosittain killalle jäsenmaksun.
|
||||
Kunniajäsenet ovat vapautettuja jäsenmaksuista.
|
||||
</p>
|
||||
<p>
|
||||
Jäsenmaksujen suuruudet määrää killan yleinen kokous.
|
||||
</p>
|
||||
|
||||
<h6 id="jasenmaksu">Jäsenmaksu</h6>
|
||||
<p>
|
||||
Killan jäsenmaksu maksetaan tilisiirrolla killan pankkitilille.
|
||||
Maksutiedot jäsenmaksua varten ovat alla.
|
||||
<ul>
|
||||
<li>Saaja: Aalto-yliopiston Sähköinsinöörikilta ry</li>
|
||||
<li>Tilinumero: FI97 1309 3000 1118 23</li>
|
||||
<li>Viite: 1313</li>
|
||||
<li>Summa: 8 €</li>
|
||||
</ul>
|
||||
</p>
|
||||
<p>
|
||||
<Link to="https://static.sahkoinsinoorikilta.fi/GDPR/Tietosuojaseloste%20%E2%80%93%20Ja%CC%88senrekisteri.pdf">
|
||||
Jäsenrekisterin tietosuojaseloste
|
||||
</Link>
|
||||
</p>
|
||||
<p>
|
||||
<Link to="https://static.sahkoinsinoorikilta.fi/saannot/killansaannot.pdf">
|
||||
Killan säännöt
|
||||
</Link>
|
||||
</p>
|
||||
</div>
|
||||
</TextSection>
|
||||
</>
|
||||
);
|
||||
|
||||
export default MembershipPageView;
|
||||
@@ -0,0 +1,34 @@
|
||||
import React from "react";
|
||||
import { TextSection } from "@components/index";
|
||||
|
||||
const RentPageView: React.FC = () => (
|
||||
<TextSection>
|
||||
<h1>Vuokraa tavaroita</h1>
|
||||
<div>
|
||||
<p>Kilta vuokraa erilaisia laitteita ja varusteita korvausta vastaan. Tältä sivulta löydät hinnaston ja varauskalenterin vuokrattaville tavaroille.</p>
|
||||
<p>Vuokrattavien hinnasto:</p>
|
||||
<ul>
|
||||
<li>Mökämasiina <a href="https://static.sahkoinsinoorikilta.fi/img/equipment/mokamasiina.jpg">kuva</a> 50 €/päivä</li>
|
||||
<li>SIK-Teltta <a href="https://sik.kuvat.fi/kuvat/2021/Varaslähtö/Varaslähtö-Suvi-Karanta-16.jpg">kuva</a> 50 €/päivä</li>
|
||||
<li>Gongi ilmainen</li>
|
||||
<li>Kyykkäsetti 10 €</li>
|
||||
<li>80 kpl kevytpeitteet</li>
|
||||
<ul>
|
||||
<li>Alle 5 kpl ilmainen</li>
|
||||
<li>5 - 50 kpl tapauskohtaisesti</li>
|
||||
<li>Yli 50 kpl 50 €/päivä</li>
|
||||
</ul>
|
||||
<li>6 kpl valokannut (Showtec Compact PAR 7 Tri) <a href="https://static.sahkoinsinoorikilta.fi/img/equipment/par7tri.png">kuva</a></li>
|
||||
<ul>
|
||||
<li>1 kpl 10 €/päivä</li>
|
||||
<li>6 kpl 50 €/päivä</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<p>Tiedustelut ja varaukset osoitteesta <a href="mailto:hallitus@sahkoinsinoorikilta.fi">hallitus@sahkoinsinoorikilta.fi</a></p>
|
||||
<p>Varauskalenteri:</p>
|
||||
<iframe src="https://calendar.google.com/calendar/embed?src=c_5774a3395a59ebaa0735e55e156b0aedca2755b9b53b85acc44b5d6e4bc1f331%40group.calendar.google.com&ctz=Europe%2FHelsinki" width="100%" height="500" title="rent_calendar" />
|
||||
</div>
|
||||
</TextSection>
|
||||
);
|
||||
|
||||
export default RentPageView;
|
||||
@@ -23,7 +23,6 @@ interface SignUpPageViewProps {
|
||||
formData: any;
|
||||
onChange: (e: IChangeEvent<unknown>, es?: ErrorSchema) => unknown;
|
||||
onSubmit: (e: ISubmitEvent<unknown>) => unknown;
|
||||
formSent?: boolean;
|
||||
}
|
||||
|
||||
const StyledSection = styled(TextSection)`
|
||||
@@ -60,7 +59,6 @@ const SignUpPageView: React.FC<SignUpPageViewProps> = ({
|
||||
formData,
|
||||
onChange,
|
||||
onSubmit,
|
||||
formSent = false,
|
||||
}) => {
|
||||
const { i18n, t } = useTranslation();
|
||||
const startDate = new Date(signUpForm?.start_time);
|
||||
@@ -138,7 +136,7 @@ const SignUpPageView: React.FC<SignUpPageViewProps> = ({
|
||||
</h1>
|
||||
|
||||
<div>
|
||||
{ formSent ? <p>{`${t("Ilmoittautuminen onnistui!")}`}</p> : form }
|
||||
{form}
|
||||
</div>
|
||||
{signups}
|
||||
</StyledSection>
|
||||
|
||||
@@ -8,7 +8,12 @@ const StudiesPageHero: React.FC = () => (
|
||||
<HeroPrimarySection
|
||||
header="Suomen parasta elektroniikan opetusta"
|
||||
// eslint-disable-next-line max-len
|
||||
text="Aalto-yliopistossa sinulla on mahdollisuus opiskella sähkö- ja elektroniikkatekniikkaa huippu professorien ja opettajien johdolla, vieläpä parhaassa mahdollisessa yhteisössä. Sähkötekniikan korkeakoulusta valmistut matematiikkaa ja fysiikkaa soveltavaksi huippuosaajaksi, jolla on valmiudet vaikka mihin työelämän taitoihin laidasta laitaan. Lue lisää opinnoista, killan roolista yliopistoelämässä ja uramahdollisuuksista alempaa."
|
||||
text="Aalto-yliopistossa sinulla on mahdollisuus opiskella sähkötekniikkaa
|
||||
ja elektroniikkaa loistavien professorien ja opettajien johdolla,
|
||||
vieläpä parhaassa mahdollisessa yhteisössä.
|
||||
Sähkötekniikan korkeakoulusta valmistut matematiikkaa ja fysiikkaa soveltavaksi huippuosaajaksi,
|
||||
jolla on valmiudet vaikka mihin työelämän taitoihin laidasta laitaan.
|
||||
Lue lisää opinnoista, killan roolista yliopistoelämässä ja uramahdollisuuksista alempaa."
|
||||
/>
|
||||
|
||||
<HeroAside bgColor="darkBlue">
|
||||
@@ -18,9 +23,9 @@ const StudiesPageHero: React.FC = () => (
|
||||
linkText="Lue lisää ›"
|
||||
/>
|
||||
<HeroAsideItem
|
||||
header="Mikä ihmeen Diplomi-insinööri"
|
||||
header="Mikä ihmeen Diplomi-insinööri?"
|
||||
link="#uratarinoita"
|
||||
linkText="Ura esimerkkejä ›"
|
||||
linkText="Uratarinoita ›"
|
||||
/>
|
||||
<HeroAsideItem
|
||||
header="Aloittelevalle opiskelijalle"
|
||||
|
||||
@@ -14,8 +14,8 @@ const StudiesPageView: React.FC = () => (
|
||||
<div>
|
||||
<h6>Mitä on sähkötekniikan opiskelu?</h6>
|
||||
<p>
|
||||
Sähkö- ja elektroniikkatekniikan opiskelu antaa valmiudet tehdä työelämässä tehtäviä laidasta laitaan.
|
||||
Sähkön opinnoista saat varmat opit matematiikasta ja fysiikasta ja opit samalla myös hyödyntämään komplekseja ohjelmistoja ja pääset kosketuksiin tulevaisuudessa keskeisten koodaustaitojen kanssa.
|
||||
Sähkötekniikan ja elektroniikan opiskelu antaa valmiudet tehdä työelämässä tehtäviä laidasta laitaan.
|
||||
Sähkön opinnoista saat varmat opit matematiikasta ja fysiikasta ja opit samalla myös hyödyntämään komplekseja ohjelmistoja ja pääset kosketuksiin nykypäivänä keskeisten koodaustaitojen kanssa.
|
||||
Opintoja on siis laajasti sähkötekniikan kursseista matematiikan kursseihin ja koodauskursseihin.
|
||||
Lisäksi voit tehdä opinnoistasi yksilölliset valitsemalla sinua kiinnostavan sivuaineen vaikka jonkun toisenkin korkeakoulun puolelta ja testata ihan mitä vain kursseja vapaavalintaisten kurssien muodossa.
|
||||
</p>
|
||||
@@ -24,7 +24,7 @@ const StudiesPageView: React.FC = () => (
|
||||
<p>
|
||||
Killan pääasiallisena tehtävänä on pitää jäsenistöstään huolta.
|
||||
Tämä tarkoittaa sitä, että kilta järjestää jäsenilleen hyvinvointitapahtumia, urheilumahdollisuuksia, iltajuhlia, yhteyksiä yritysmaailmaan ja tukee tietysti myös opinnoissa.
|
||||
Löydät tietoa kaikista näistä killan tehtävistä lisää, tutustumalla killan toimintaan esimerkiksi <Link to="/kilta">täältä</Link>.
|
||||
Löydät tietoa kaikista näistä killan tehtävistä lisää tutustumalla killan toimintaan esimerkiksi <Link to="/kilta">täältä</Link>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -118,7 +118,7 @@ const StudiesPageView: React.FC = () => (
|
||||
<div>
|
||||
<h6>Sisu</h6>
|
||||
<p>
|
||||
Aalto-yliopistossa on käytössä <Link to="https://sis-aalto.funidata.fi/">Sisu</Link>, josta opiskelija voi ilmoittautua kursseille tai tentteihin sekä tilata ja katsella opintosuorituksia..
|
||||
Aalto-yliopistossa on käytössä <Link to="https://sis-aalto.funidata.fi/">Sisu</Link>, josta opiskelija voi ilmoittautua kursseille tai tentteihin sekä tilata ja katsella opintosuorituksia.
|
||||
</p>
|
||||
<h6>Tenttiarkisto</h6>
|
||||
<p>
|
||||
@@ -129,8 +129,8 @@ const StudiesPageView: React.FC = () => (
|
||||
<p>
|
||||
<Link to="https://mycourses.aalto.fi/">MyCourses</Link> on Aalto-yliopiston sivusto, josta löytää kurssien työympäristöt.
|
||||
Valtaosa kursseista suoritetaan <Link to="https://mycourses.aalto.fi/">MyCourses</Link>-järjestelmän kautta erinäisillä tehtävillä ja palautuksilla.
|
||||
Sieltä löydät myös kaikki menneet, käynnissä olevat sekä tulevat kurssit.
|
||||
Huomaa kuitenkin, että sieltä löytyy ainoastaa ne kurssit, joille olet ilmoittautunut <Link to="https://sis-aalto.funidata.fi/">Sisun</Link> kautta.
|
||||
Sieltä löydät kaikki menneet, käynnissä olevat sekä tulevat kurssit.
|
||||
Huomaa kuitenkin, että sieltä löytyvät ainoastaan ne kurssit, joille olet ilmoittautunut <Link to="https://sis-aalto.funidata.fi/">Sisun</Link> kautta.
|
||||
</p>
|
||||
</div>
|
||||
</TextSection>
|
||||
@@ -141,16 +141,16 @@ const StudiesPageView: React.FC = () => (
|
||||
<p>
|
||||
Hallopedit eli hallinnon opiskelijaedustajat ovat ylioppilaskunnan valitsemia edustajia yliopiston toimielimiin.
|
||||
He edustavat itsensä lisäksi koko opiskelijakuntaa.
|
||||
Hallopediksi voi hakeutua avoimessa haussa kuka tahansa kyseisen korkeakoulun opiskelija.
|
||||
Hallopediksi voi hakea avoimessa haussa kuka tahansa kyseisen korkeakoulun opiskelija.
|
||||
</p>
|
||||
<p>
|
||||
Hallopedit ovat täysivaltaisia toimielintensä jäseniä ja vaikuttavatkin siihen, millaista opiskelu ja tutkimus korkeakoulussa tulevaisuudessa on.
|
||||
Hallopedit ovat täysivaltaisia toimielintensä jäseniä ja vaikuttavat siihen, millaista opiskelu ja tutkimus korkeakoulussa tulevaisuudessa on.
|
||||
Heitä tuet parhaiten antamalla palautetta tai lähtemällä itse vapaaehtoiseksi.
|
||||
</p>
|
||||
<h6>Hallopediksi?</h6>
|
||||
<p>
|
||||
AYY:n edustajisto tekee vuosittain päätökset opiskelijajäsenistä.
|
||||
Sähköinsinöörikilta tekee edustajistolle esityksenv jäsenistä erityisesti Sähkötekniikan korkeakoulun elimien osalta.
|
||||
Sähköinsinöörikilta tekee edustajistolle esityksen jäsenistä erityisesti Sähkötekniikan korkeakoulun elimien osalta.
|
||||
</p>
|
||||
<p>
|
||||
Haku tapahtuu <Link to="https://www.halloped.fi">Halloped.fi-portaalin</Link> kautta syksyisin.
|
||||
@@ -160,7 +160,9 @@ const StudiesPageView: React.FC = () => (
|
||||
<h6>Sähkötekniikan korkeakoulun toimielimet</h6>
|
||||
<p>
|
||||
Alle on listattu kaikki sähkötekniikan korkeakoulun toimielimet.
|
||||
Lisätietoa ja aktiiviset opiskelijajäsenet löydät <Link to="https://www.halloped.fi/fi/aalto/organs">Halloped-sivustolta</Link> ja <Link to="https://www.aalto.fi/fi/sahkotekniikan-korkeakoulun-johtaminen">korkeakoulun Aalto.fi-sivulta</Link>.
|
||||
Lisätietoa ja aktiiviset opiskelijajäsenet löydät
|
||||
<Link to="https://www.halloped.fi/fi/aalto/organs">Halloped-sivustolta</Link> ja
|
||||
<Link to="https://www.aalto.fi/fi/sahkotekniikan-korkeakoulun-johtaminen">korkeakoulun Aalto.fi-sivulta</Link>.
|
||||
</p>
|
||||
<HallopedCommittees />
|
||||
</div>
|
||||
|
||||
@@ -9,3 +9,4 @@ services:
|
||||
order: start-first
|
||||
ports:
|
||||
- 3000:3000
|
||||
|
||||
|
||||
Reference in New Issue
Block a user