diff --git a/src/actions/groups.js b/src/actions/groups.js new file mode 100644 index 0000000000000000000000000000000000000000..100e4ff11378f742e20feb4d7d5402e0cd622620 --- /dev/null +++ b/src/actions/groups.js @@ -0,0 +1,16 @@ +import axios from './session'; +import { GET_GROUPS } from './types'; + +export const getGroups = () => ( + async (dispatch) => { + try { + const response = await axios.get('/api/v1/groups'); + dispatch({ + type: GET_GROUPS, + payload: response.data, + }); + } catch (e) { + console.log(e); + } + } +); diff --git a/src/actions/types.js b/src/actions/types.js index df9349efd28b1685578424277f959ea18f976bde..36d04739104a6bc68352579f01bad31b64a84c2b 100644 --- a/src/actions/types.js +++ b/src/actions/types.js @@ -2,6 +2,8 @@ export const GET_USERDATA = 'get_userdata'; export const GET_NEWS = 'get_news'; export const GET_DEADLINE = 'get_deadline'; +export const GET_GROUPS = 'get_groups'; + export const PROFILE_CHANGE = 'profile_change'; export const GROUP_CHANGE = 'group_change'; diff --git a/src/components/pages/Groups.js b/src/components/pages/Groups.js index 27518db98c3a962f415c66f552f6a5b34dc305d8..7e725cb33c2ecf9676a1ac596e7a15a7347bdd86 100644 --- a/src/components/pages/Groups.js +++ b/src/components/pages/Groups.js @@ -2,7 +2,15 @@ import React, { Component } from 'react'; import { Container, Header, Segment, Divider } from 'semantic-ui-react'; import './Groups.css'; -export default class Groups extends Component { +import { connect } from 'react-redux'; +import { getGroups } from '../../actions/groups'; + + +class Groups extends Component { + componentWillMount() { + this.props.getGroups() + } + render() { return ( <div> @@ -21,71 +29,24 @@ export default class Groups extends Component { /> </Container> </Segment> - + <Segment style={{ padding: '8em 0em' }} vertical> <Container text> - <Header as='h3' style={{ fontSize: '2em' }}>DevTeam</Header> - <p className='paragraph'> - A DevTeam a KSZK fejlesztĹ kĂśre. Az informatika szĂĄmos terĂźletĂŠvel foglalkoznak, tĂśbbek kĂśzĂśtt pĂŠldĂĄul alkalmazĂĄs- ĂŠs mobilszoftver fejlesztĂŠssel, weblapkĂŠszĂtĂŠssel. Ezen felĂźl talĂĄlkozhatsz mikrokontrollerek programozĂĄsĂĄval, legyen az akĂĄr Raspberry Pi vagy Arduino. SajĂĄt Ăśtleteid megvalĂłsĂtĂĄsĂĄban is szĂvesen nyĂşjtanak segĂtĹ kezet, illetve egyes gyĹąlĂŠseiken gyorstalpalĂłkat tartanak, hogy az ĂŠrdeklĹdĹk mielĹbb be tudjanak csatlakozni a munkĂĄba. - </p> - <p className='paragraph'> - Jelenlegi projektjeik kĂśzĂŠ tartozik egy SchĂśnherz szintĹą kĂślcsĂśnzĂŠsi rendszer kialakĂtĂĄsa, egy gyakorlĂłoldal kĂŠszĂtĂŠse, melyen egyetemi tĂĄrgyak ZH-ira, vizsgĂĄira lehet kĂŠszĂźlni, a tanulĂł helyisĂŠgek foglaltsĂĄgĂĄt vizsgĂĄlĂł rendszer bevezetĂŠse, de szĂvesen viszik ĂŠrdeklĹdĹ, lelkes tagjaik Ăşj projektĂśtleteit is. - </p> - <p className='paragraph'> - A kĂśr szeretettel vĂĄr mindenkit, legyen akĂĄr profi fejlesztĹ, vagy olyan, aki csak most ismerkedik a fejlesztĂŠs szĂŠpsĂŠgeivel â nĂĄluk mindenki talĂĄl a kĂŠpessĂŠgeinek megfelelĹ elfoglaltsĂĄgot. - </p> - - <Divider as='h4' className='header' style={{ margin: '3em 0em' }} /> - <Header as='h3' style={{ fontSize: '2em' }}>HallgatĂłi TudĂĄsbĂĄzis</Header> - <p className='paragraph'> - A HaT (HallgatĂłi TudĂĄsbĂĄzis) a VIK Wiki adminisztrĂĄciĂłjĂĄĂŠrt, illetve ĂźzemeltetĂŠsĂŠĂŠrt, fejlesztĂŠsĂŠĂŠrt felelĹs kĂśr. Nekik kĂśszĂśnhetĹ a Wiki rendezett ĂĄllapota. Odafigyelnek rĂĄ, hogy kĂśvessĂŠk a szerkesztĹi szokĂĄsokat, ĂŠs rendszeresen felmĂŠrik, milyen ĂşjĂtĂĄsra van kereslet. Azoknak a jelentkezĂŠsĂŠt vĂĄrjĂĄk, akik nem riadnak vissza egy (rosszabb napjain) napi Ăśtezer oldalmegtekintĂŠst produkĂĄlĂł rendszer ĂĄpolgatĂĄsĂĄtĂłl. - </p> - - <Divider as='h4' className='header' style={{ margin: '3em 0em' }} /> - <Header as='h3' style={{ fontSize: '2em' }}>NETeam</Header> - <p className='paragraph'> - A NETeam foglalkozik a kollĂŠgiumi hĂĄlĂłzati infrastruktĂşra ĂźzemeltetĂŠsĂŠvel ĂŠs fejlesztĂŠsĂŠvel. BiztosĂtjĂĄk a hĂĄlĂłzat folyamatos mĹąkĂśdĂŠsĂŠt, kĂśvetik az Ăşj hĂĄlĂłzati technolĂłgiĂĄk alakulĂĄsĂĄt, igyekeznek gyakorlatban is kiprĂłbĂĄlni Ĺket, alkalomadtĂĄn pedig cĂŠgekkel kapcsolatot tartva vesznek rĂŠszt Ăşj megoldĂĄsok tesztelĂŠsĂŠben is. - </p> - <p className='paragraph'> - A SchĂśnherzben a 90-es ĂŠvek Ăłta Ăźzemelteti a HĂĄzat lefedĹ hĂĄlĂłzatot a KSZK, mely azĂłta tĂśbbszĂśr teljes cserĂŠn esett ĂĄt. A KSZK reszorttĂĄ vĂĄlĂĄsa elĹtt a NETeam egy erre szakosodott csoportja volt, 2014 Ăłta pedig ĂśnĂĄllĂł kĂśrkĂŠnt folytatja tevĂŠkenysĂŠgĂŠt. A kĂśr tagjai hagyomĂĄnyosan a NetAdmin ĂŠs segĂŠd-NetAdminok, akik a kollĂŠgiumi hĂĄlĂłzat fenntartĂĄsĂĄĂŠrt felelĹsek, illetve a Netikai BizottsĂĄg elnĂśke ĂŠs tagjai, akik a hĂĄlĂłzathasznĂĄlati szabĂĄlyzatot tartatjĂĄk be, illetve a hĂĄlĂłzathasznĂĄlati szabĂĄlyzattal szemben elkĂśvetett kihĂĄgĂĄsokat felĂźgyelik ĂŠs szankcionĂĄljĂĄk. - </p> - <p className='paragraph'> - Az ide kerĂźlĹknek lehetĹsĂŠgĂźk van bekapcsolĂłdni az ISO/OSI modell majdnem minden rĂŠtegĂŠben mĹąkĂśdĹ szolgĂĄltatĂĄsok ĂźzemeltetĂŠsĂŠbe ĂŠs fejlesztĂŠsĂŠbe, amit szolgĂĄltatĂĄstĂłl fĂźggĹen akĂĄr az egĂŠsz karon hasznĂĄlnak. Ilyen pĂŠldĂĄul a Cisco eszkĂśzĂśk konfigurĂĄciĂłja, WiFi hĂĄlĂłzat, VoIP, VPN, DNS/Dinamikus DNS ĂźzemeltetĂŠse, fejlesztĂŠse, felhasznĂĄlĂłi adatbĂĄzis kezelĂŠse, forgalommonitorozĂĄs. Ezek szĂŠleskĂśrĹą rĂĄlĂĄtĂĄst engednek egy komplex hĂĄlĂłzatra ĂŠs a hasznĂĄlt technolĂłgiĂĄk mĹąkĂśdĂŠsĂŠre. A hasznĂĄlt hĂĄlĂłzattĂłl fĂźggetlenĂźl kialakĂtott router laborban pedig lehetĹsĂŠg van szinte bĂĄrmilyen, az iparban hasznĂĄlt switching/routing megoldĂĄs prĂłba szintĹą felĂŠpĂtĂŠsĂŠre. - </p> - <p className='paragraph'> - Jelenleg vĂĄrhatĂł legnagyobb projektjĂźk a HĂĄzat teljes egĂŠszĂŠben lefedĹ WiFi hĂĄlĂłzat kiĂŠpĂtĂŠse lesz, de a kĂśvetkezĹ ĂŠvben kilĂĄtĂĄsban van a Software Defined Networking megoldĂĄsokkal valĂł ismerkedĂŠs, illetve a router labor tovĂĄbbfejlesztĂŠse is. - </p> - <p className='paragraph'> - Aki csatlakozik a kĂśrbe ĂŠs hĂĄlĂłzatot vagy szolgĂĄltatĂĄsokat Ăźzemeltet, fejleszt, felelĹssĂŠggel fog tartozni az ĂĄltala irĂĄnyĂtott rendszerĂŠrt, ezzel pedig fontos rĂŠsze lesz a SchĂśnherzes kĂśzĂŠletnek. Ez a felelĹssĂŠg, az ezzel jĂĄrĂł nem kizĂĄrĂłlag szakmai tapasztalat ĂŠs technikai tudĂĄs pedig egy kĂŠsĹbbi ĂśnĂŠletrajzban is olyan tĂŠnyezĹ tud lenni, amivel kevĂŠs frissen vĂŠgzett hĂĄlĂłzati szakember rendelkezik. - </p> - - <Divider as='h4' className='header' style={{ margin: '3em 0em' }} /> - <Header as='h3' style={{ fontSize: '2em' }}>SecurITeam</Header> - <p className='paragraph'> - A SecurITeam-ben te is megismerkedhetsz az IT biztonsĂĄgban hasznĂĄlt technikĂĄkkal: weboldalakat, szervereket, zĂĄrakat ĂŠs mĂŠg hardvereket is tĂśrnek. - </p> - <p className='paragraph'> - CsinĂĄltĂĄl egy weboldalt vagy appot, de nem vagy meggyĹzĹdve arrĂłl, hogy biztonsĂĄgos? NĂĄluk mind a tĂĄmadĂł, mind a vĂŠdekezĹ oldal technikĂĄirĂłl tanulhatsz, ĂŠs ki is prĂłbĂĄlhatod a tudĂĄsodat ĂŠlĹben. Az SQL injection, programok visszafejtĂŠse ĂŠs exploitĂĄlĂĄsa, webes alkalmazĂĄsok biztonsĂĄgĂĄnak vizsgĂĄlata, ismert tĂĄmadĂĄsok (pl. Shellshock, Meltdown) kiprĂłbĂĄlĂĄsa, gyenge titkosĂtĂĄsok megkerĂźlĂŠse, valamint a privacy vĂŠdelme mind olyan dolgok, amivel ez a kĂśr foglalkozik. A szoftveres tĂŠmĂĄk mellett a fizikai biztonsĂĄgra is hangsĂşlyt fektetnek, legyen az Bluetooth sniffing, rĂĄdiĂłs lehallgatĂĄs, RFID klĂłnozĂĄs vagy lockpicking, nĂĄluk megtalĂĄlod ez ehhez szĂźksĂŠges eszkĂśzĂśket ĂŠs szaktudĂĄst! - </p> - <p className='paragraph'> - A kĂśr elĹadĂĄsokat, tanfolyamokat ĂŠs workshopokattart, illetve a SchĂśnherzes infrastruktĂşra biztonsĂĄgĂĄt rendszeresen pentestekkel ellenĹrzik. - </p> - <p className='paragraph'> - A kĂśrben lehetĹsĂŠged adĂłdik arra, hogy a korĂĄbban felsorolt tevĂŠkenysĂŠgek bĂĄrmelyikĂŠvel foglalkozz, tanulj, versenyezz IT biztonsĂĄgi versenyeken (CTF), illetve a Wargame fejlesztĂŠsĂŠbe is be tudsz csatlakozni. - </p> - - <Divider as='h4' className='header' style={{ margin: '3em 0em' }} /> - <Header as='h3' style={{ fontSize: '2em' }}>Sysadmin</Header> - <p className='paragraph'> - A Sysadmin a SchĂśnherz szerverĂźzemeltetĂŠsĂŠvel foglalkozĂł ĂśntevĂŠkeny kĂśre. A kollĂŠgiumban mĹąkĂśdĹ IT szolgĂĄltatĂĄsokat nyĂşjtĂł infrastruktĂşrĂĄt Ĺk felĂźgyelik, fejlesztik. Az ĂĄltaluk hasznĂĄlt szoftverek kĂśzĂśtt megtalĂĄlhatĂłak Linux, BSD, Solaris valamint Windows alapĂş megoldĂĄsok is. Az infrastruktĂşra VPN szerverĂŠnek segĂtsĂŠgĂŠvel akĂĄr otthonrĂłl is hozzĂĄfĂŠrhetsz azokhoz az erĹforrĂĄsokhoz, amelyek csak az egyetemi hĂĄlĂłzatbĂłl elĂŠrhetĹk. 2014 vĂŠgĂŠn indult a legfiatalabb, RemoteApp nĂŠvre hallgatĂł szolgĂĄltatĂĄsuk, mellyel Ăşgy ĂŠrtheted el az oktatĂĄsban is hasznĂĄlt (ĂŠs egyĂŠb) szoftvereket, hogy nem szĂźksĂŠges azokat telepĂtened a gĂŠpedre. A felhasznĂĄlĂłi igĂŠnyek alapjĂĄn folyamatosan bĹvĂtik szolgĂĄltatĂĄsaik palettĂĄjĂĄt. - </p> - <p className='paragraph'> - Minden fĂŠlĂŠvben indĂtanak Ăşj projekteket. Jelenleg ĂŠs a kĂśvetkezĹ fĂŠlĂŠvekben egy Docker (Kubernetes) alapĂş container cluster fejlesztĂŠsĂŠn ĂŠs Ăźzembe helyezĂŠsĂŠn, illetve konfigurĂĄciĂł menedzsment bevezetĂŠsĂŠn dolgoznak. Az Ăşj dolgok mellett persze komoly hangsĂşlyt fektetnek a jelenleg ĂźzemelĹ szerverek folyamatos karbantartĂĄsĂĄra is. NĂĄluk megtanulhatod, hogyan kell egy tĂśbb fizikai hosztbĂłl ĂĄllĂł, kĂśrĂźlbelĂźl 150 virtuĂĄlis szervert kiszolgĂĄlĂł virtualizĂĄciĂłs clustert Ăźzemeltetni, de akĂĄr a webhosting terĂźletĂŠn is fejlesztheted tudĂĄsod a HĂĄz legnagyobb (~200 weboldat kiszolgĂĄlĂł) szerverĂŠnek felĂźgyelete sorĂĄn. Ha szeretnĂŠl a felszĂn mĂśgĂŠ lĂĄtni, ĂŠs relevĂĄns szakmai tapasztalatot szerezni a terĂźleten, akkor kĂśztĂźk a helyed. Az elĹismeret nem kĂśvetelmĂŠny, a lelkesedĂŠs igen. - </p> - + { this.props.groups.map(item => { + return <div key={item.id}> + <Header as='h3' style={{ fontSize: '2em' }}>{item.name}</Header> + <div className='paragraph' dangerouslySetInnerHTML={{__html: item.description}}> + </div> + </div> + })} </Container> </Segment> </div> ); } } + +const mapStateToProps = ({ groups }) => ({ groups }); + +export default connect(mapStateToProps, { getGroups })(Groups); + diff --git a/src/reducers/GroupsReducer.js b/src/reducers/GroupsReducer.js new file mode 100644 index 0000000000000000000000000000000000000000..22b4baad7d0604dbe3f028ab7bfa3d77f4becbbd --- /dev/null +++ b/src/reducers/GroupsReducer.js @@ -0,0 +1,12 @@ +import { GET_GROUPS } from '../actions/types'; + +const INITIAL_STATE = []; + +export default (state = INITIAL_STATE, action) => { + switch (action.type) { + case GET_GROUPS: + return action.payload ; + default: + return state; + } +}; diff --git a/src/reducers/index.js b/src/reducers/index.js index 2464c572a060e17e375effcb11717ebbc430f479..985cc63d1555fccec886ad7e8d2deeb2e4d72f31 100644 --- a/src/reducers/index.js +++ b/src/reducers/index.js @@ -11,6 +11,7 @@ import TraineeReducer from './TraineeReducer'; import NoteReducer from './NoteReducer'; import CorrectSolutionReducer from './CorrectSolutionReducer'; import EditTaskReducer from './EditTaskReducer'; +import GroupsReducer from './GroupsReducer'; const rootReducer = combineReducers({ user: UserReducer, @@ -25,6 +26,7 @@ const rootReducer = combineReducers({ events: EventReducer, trainees: TraineeReducer, notes: NoteReducer, + groups: GroupsReducer, }); export default rootReducer;