Skip to content

Commit fabbcc4

Browse files
committed
graphql material migration
1 parent 514a7b5 commit fabbcc4

9 files changed

Lines changed: 103 additions & 50 deletions

File tree

src/components/InfoBanner4.js

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
import React from 'react';
2+
3+
const InfoBanner4 = ({ visible, onHide }) => {
4+
if (!visible) return null;
5+
6+
const style = {
7+
padding: 10,
8+
borderStyle: 'solid',
9+
borderWidth: 2,
10+
marginLeft: 80,
11+
marginRight: 80,
12+
position: 'sticky',
13+
top: 100,
14+
left: 40,
15+
display: 'flex',
16+
flexWrap: 'wrap',
17+
flexDirection: 'row',
18+
alignContent: 'space-between',
19+
backgroundColor: '#fff3cd',
20+
borderColor: '#ffc107',
21+
color: '#5a4000',
22+
zIndex: 2147483647,
23+
};
24+
25+
const linkStyle = {
26+
color: 'grey',
27+
textDecoration: 'underline',
28+
};
29+
30+
const textStyle = {
31+
flex: 90,
32+
};
33+
34+
const buttonDiv = {
35+
flex: 10,
36+
textAlign: 'right',
37+
};
38+
39+
const buttonStyle = {
40+
outline: 'none',
41+
backgroundColor: 'transparent',
42+
border: 'none',
43+
color: 'var(--color-text)',
44+
cursor: 'pointer',
45+
};
46+
47+
return (
48+
<div style={style}>
49+
<div style={textStyle}>
50+
<div style={{ marginBottom: 20 }}>
51+
<div style={{ marginBottom: 10 }}>
52+
Material of Part 8 has been moved to <a style={linkStyle}
53+
href="https://courses.mooc.fi/org/uh-cs/courses/full-stack-open-graphql"
54+
>
55+
https://courses.mooc.fi/org/uh-cs/courses/full-stack-open-graphql
56+
</a>
57+
</div>
58+
</div>
59+
</div>
60+
<div style={buttonDiv}>
61+
<button style={buttonStyle} onClick={onHide}>
62+
<div style={textStyle}>x</div>
63+
</button>
64+
</div>
65+
</div>
66+
);
67+
};
68+
69+
export default InfoBanner4;

src/components/layout.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,15 @@ import Header from './Header/Header';
88
import InfoBanner from './InfoBanner';
99
import InfoBanner2 from './InfoBanner2';
1010
import InfoBanner3 from './InfoBanner3';
11+
import InfoBanner4 from './InfoBanner4';
1112
import Footer from './Footer/Footer';
1213
import PropTypes from 'prop-types';
1314
import SkipToContent from './SkipToContent/SkipToContent';
1415

1516
const BANNER_TO_KEY = 'part_10_changes';
1617
const BANNER3_TO_KEY = 'part_7_changes';
1718
const BANNER2_TO_KEY = 'part_6_changes';
19+
const BANNER4_TO_KEY = 'part_8_changes';
1820

1921
const Layout = (props) => {
2022
const { i18n } = useTranslation();
@@ -25,6 +27,7 @@ const Layout = (props) => {
2527
const [visible, setVisible] = useState(false);
2628
const [visible2, setVisible2] = useState(false);
2729
const [visible3, setVisible3] = useState(false);
30+
const [visible4, setVisible4] = useState(false);
2831

2932
useEffect(() => {
3033
const key = localStorage.getItem(BANNER_TO_KEY);
@@ -50,6 +53,14 @@ const Layout = (props) => {
5053
}
5154
}, []);
5255

56+
useEffect(() => {
57+
const key = localStorage.getItem(BANNER4_TO_KEY);
58+
if (!key) {
59+
const relevant = window.location.href.includes('en/part8') || window.location.href.includes('osa8');
60+
setVisible4(relevant);
61+
}
62+
}, []);
63+
5364
const hideNote = () => {
5465
console.log('hideNote');
5566
localStorage.setItem(BANNER_TO_KEY, 'yes');
@@ -68,6 +79,12 @@ const Layout = (props) => {
6879
setVisible3(false);
6980
};
7081

82+
const hideNote4 = () => {
83+
console.log('hideNote');
84+
localStorage.setItem(BANNER4_TO_KEY, 'yes');
85+
setVisible4(false);
86+
};
87+
7188
return (
7289
<div className="main-wrapper">
7390
<SkipToContent isCoursePage={isCoursePage} />
@@ -80,6 +97,8 @@ const Layout = (props) => {
8097

8198
<InfoBanner3 onHide={() => hideNote3()} visible={visible3} />
8299

100+
<InfoBanner4 onHide={() => hideNote4()} visible={visible4} />
101+
83102
<main id="main-content">{children}</main>
84103

85104
{!hideFooter && <Footer lang={siteLanguage} />}

src/content/0/en/part0a.md

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,7 @@ By submitting at least 150 of the exercises for parts 0-7 while working on the c
126126
127127
#### Part 8 - Full Stack Web Development: GraphQL (1 cr, CSM14113)
128128
129-
By submitting at least 22/26 of the exercises for part 8 of the course, GraphQL, you can get one additional credit. Part 8 can be done any time after part 5 because its contents are independent of parts 6 and 7.
130-
131-
- Submit at least 22/26 exercises for part 8.
132-
- [Enroll in part 8 through the Open University](https://www.avoin.helsinki.fi/palvelut/esittely.aspx?s=otm-f29bbf9e-3dfd-42d3-bdb8-c62be94932f8).
133-
- [Request credits for part 8](/en/part0/general_info/#how-to-get-your-credits).
129+
Material of part 8 has been moved to <a href="https://courses.mooc.fi/org/uh-cs/courses/full-stack-open-graphql">https://courses.mooc.fi/org/uh-cs/courses/full-stack-open-graphql</a>.
134130
135131
#### Part 9 - Full Stack Web Development: TypeScript (1 cr, CSM14110)
136132
@@ -166,18 +162,11 @@ Material of part 13 has been moved to <a href="https://courses.mooc.fi/org/uh-cs
166162
167163
Please note that if you do the "base course" with 6 or 7 credits, you need separate registrations for the extra credits, see [Parts and completion](/en/part0/general_info#parts-and-completion) for more.
168164
169-
#### How to study the course – instructions in a nutshell: part 8
170-
171-
- Do the exercises. The exercises are submitted through GitHub and marking them as done on the submission system. Note that part 8 has a separate instance in the submission system
172-
- [The course certificate](/en/part0/general_info#course-certificate) will be available in the submission system
173-
- If you want to get University of Helsinki credits
174-
- Enroll in the course. You can enroll in each part through the link in the course material ([Parts and completion](/en/part0/general_info#parts-and-completion)). Enroll in each part separately.
175-
- Mark the part completed in the submission system. Read more [here](/en/part0/general_info#how-to-get-your-credits)
176-
177-
#### How to study the course – instructions in a nutshell: parts 9-13
165+
#### How to study the course – instructions in a nutshell: parts 8-13
178166
179167
All practicalities are explained in the new course pages
180168
169+
- <a href="https://courses.mooc.fi/org/uh-cs/courses/full-stack-open-graphql">part 8</a>
181170
- <a href="https://courses.mooc.fi/org/uh-cs/courses/full-stack-open-typescript">part 9</a>
182171
- <a href="https://courses.mooc.fi/org/uh-cs/courses/full-stack-open-react-native">part 10</a>
183172
- <a href="https://courses.mooc.fi/org/uh-cs/courses/full-stack-open-continuous-integration">part 11</a>

src/content/0/fi/osa0a.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,7 @@ Suorittamalla vähintään 150 tehtävää kurssin osista 0–7 ydinkurssin suor
8282

8383
#### Osa 8 - Full Stack ‑websovelluskehitys: GraphQL (1 op, CSM14113)
8484

85-
Suorittamalla vähintään 22/26 tehtävää kurssin kahdeksannesta, GraphQL:ää käsittelevästä osasta, voit laajentaa suoritustasi yhdellä opintopisteellä. Voit tehdä GraphQL:ää käsittelevän osuuden periaatteessa jo osan 5 jälkeen, sillä sen sisältö ei riipu osista 6 ja 7.
86-
- Tee vähintään 22/26 tehtävää osasta 8.
87-
- [Ilmoittaudu tähän osaan Avoimen yliopiston kautta.](https://www.avoin.helsinki.fi/palvelut/esittely.aspx?s=otm-f29bbf9e-3dfd-42d3-bdb8-c62be94932f8)
88-
- [Pyydä suoritusmerkintää](https://fullstackopen.com/osa0/yleista#suoritusmerkinnan-pyytaminen) tästä osasta.
85+
Materiaali siirretty osoitteeseen <a href="https://courses.mooc.fi/org/uh-cs/courses/full-stack-open-graphql">https://courses.mooc.fi/org/uh-cs/courses/full-stack-open-graphql</a>
8986

9087
#### Osa 9 - Full Stack ‑websovelluskehitys: TypeScript (1 op, CSM14110, englanniksi)
9188

@@ -117,17 +114,18 @@ Materiaali siirretty osoitteeseen <a href="https://courses.mooc.fi/org/uh-cs/cou
117114
- Tee kurssikoe palautusjärjestelmässä, lue lisää [täältä](/osa0/yleista#kurssikoe).
118115
- Pyydä suoritusmerkintää palautussovelluksessa. Lue lisää [täältä](/osa0/yleista#suoritusmerkinnan-pyytaminen)
119116

120-
#### Kurssin suoritusohjeet pähkinänkuoressa (Osat 6-8)
117+
#### Kurssin suoritusohjeet pähkinänkuoressa (Osat 6 ja 7)
121118

122119
- Tee tehtävät. Palauta vastauksesi palautussovelluksen kautta. Huomaa, että osa 8 palautetaan palautussovelluksessa erillisiin kurssi-instansseihin.
123120

124121
- Ilmoittaudu kurssille. Pääset ilmoittautumaan kurssimateriaalista (ks. [Osat ja suorittaminen](/osa0/yleista#osat-ja-suorittaminen)) löytyvän ilmoittautumislinkin kautta. Ilmoittaudu erikseen kuhunkin osaan.
125122
- Pyydä suoritusmerkintää palautussovelluksessa. Lue lisää [täältä](/osa0/yleista#suoritusmerkinnan-pyytaminen)
126123

127-
#### Kurssin suoritusohjeet pähkinänkuoressa (Osat 9-13)
124+
#### Kurssin suoritusohjeet pähkinänkuoressa (Osat 8-13)
128125

129126
Käytännöt selviävät osien materiaalista:
130127

128+
- <a href="https://courses.mooc.fi/org/uh-cs/courses/full-stack-open-graphql">osa 8</a>
131129
- <a href="https://courses.mooc.fi/org/uh-cs/courses/full-stack-open-typescript">osa 9</a>
132130
- <a href="https://courses.mooc.fi/org/uh-cs/courses/full-stack-open-react-native">osa 110</a>
133131
- <a href="https://courses.mooc.fi/org/uh-cs/courses/full-stack-open-continuous-integration">osa 11</a>

src/content/8/en/part8.md

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,9 @@ lang: en
66

77
<div class="intro">
88

9-
This part of the course is about GraphQL, Facebook's alternative to REST for communication between browser and server.
9+
Note that the material of Part 8 has been moved to <a href="https://courses.mooc.fi/org/uh-cs/courses/full-stack-open-graphql">
10+
https://courses.mooc.fi/org/uh-cs/courses/full-stack-open-graphql</a>
1011

11-
<i>Part updated 3rd January 2026</i>
12-
- <i>Apollo Server updated from v4 to v5</i>
13-
- <i>Apollo Client updated from v3 to v4</i>
14-
- <i>Node updated to version 22.18.0</i>
15-
- <i>Added instructions for enabling syntax highlighting for the GraphQL server schema in VS Code</i>
12+
You can still access the old content [here](https://github.com/fullstack-hy2020/fullstack-hy2020.github.io/tree/0ab0b72f8dddd35ca43c812abd15675a92a1abaa/src/content/8/en).
1613

1714
</div>

src/content/8/fi/osa8.md

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,8 @@ lang: fi
66

77
<div class="intro">
88

9-
Kurssin uudessa osassa käsitellään GraphQL:ää, eli Facebookin kehittämää, RESTille vaihtoehtoista tapaa selaimen ja palvelimen väliseen kommunikointiin.
9+
Huomaa, että osan 8 materiaali on siirretty osoitteeseen <a href="https://courses.mooc.fi/org/uh-cs/courses/full-stack-open-graphql">https://courses.mooc.fi/org/uh-cs/courses/full-stack-open-graphql</a>
1010

11-
Katso <a target="_BLANK" href='https://www.youtube.com/watch?v=R7bXa7g6YuQ&list=PLumQiZ25uijis31zaRL7rhzLalSwLqUtm&index=4&t=0s'>täältä</a> Houston Inc:n Niko Salmisen GraphQL:ää käsittelevä vierailuluento.
12-
13-
<i>Osa päivitetty 3.1.2026</i>
14-
- <i>Apollo Server päivitetty versiosta v4 versioon v5</i>
15-
- <i>Apollo Client päivitetty versiosta v3 versioon v4</i>
16-
- <i>Node päivitetty versioon 22.18.0</i>
17-
- <i>Lisätty ohjeet GraphQL-palvelimen skeeman syntaksikorostuksen käyttöönottoon VS Codessa</i>
11+
Vanha materiaali on edelleen nähtävillä [täällä](https://github.com/fullstack-hy2020/fullstack-hy2020.github.io/tree/0ab0b72f8dddd35ca43c812abd15675a92a1abaa/src/content/8/fi).
1812

1913
</div>

src/content/9/en/part9.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,4 @@ In this part, we will be using the tools previously introduced to build end-to-e
2323

2424
This part is created by [Tuomo Torppa](https://www.linkedin.com/in/tuomotorppa), [Tuukka Peuraniemi](https://www.linkedin.com/in/tuukkapeuraniemi/) and [Jani Rapo](https://www.linkedin.com/in/jani-rapo-5520817b/), the awesome developers of [Terveystalo](https://www.terveystalo.com/fi/Yritystietoa/Terveystalo-tyontantajana/Digital-Health/), the largest private healthcare service provider in Finland. Terveystalo’s nationwide network covers 300 locations across Finland. The clinic network is supplemented by 24/7 digital services.
2525

26-
2726
</div>

src/content/9/fi/osa9.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ lang: fi
1111
Huomaa, että osan 9 materiaali on siirretty osoitteeseen <a href="https://courses.mooc.fi/org/uh-cs/courses/full-stack-open-typescript">
1212
https://courses.mooc.fi/org/uh-cs/courses/full-stack-open-typescript</a>
1313

14-
Sisällössä on joitakin merkittäviä muutoksia. Jos olet jo aloittanut tämän osan ja edennyt ensimmäisten tehtävien ohi, voit jatkaa vanhan materiaalin mukaan — se säilyy täällä 1. toukokuuta 2026 asti.
14+
Sisällössä on joitakin merkittäviä muutoksia. Jos olet jo aloittanut tämän osan ja edennyt ensimmäisten tehtävien ohi, voit jatkaa vanhan materiaalin mukaan. Materiaali säilyy täällä 1. toukokuuta 2026 asti.
1515

1616
</div>
1717

src/content/partnavigation/partnavigation.js

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,7 @@ module.exports = {
4343
d: 'Redux (legacy)',
4444
},
4545
7: {},
46-
8: {
47-
a: 'GraphQL-palvelin',
48-
b: 'React ja GraphQL',
49-
c: 'Tietokanta ja käyttäjien hallinta',
50-
d: 'Kirjautuminen ja välimuistin päivitys',
51-
e: 'Fragmentit ja subskriptiot',
52-
},
46+
8: {},
5347
9: {},
5448
10: {},
5549
11: {},
@@ -105,13 +99,7 @@ module.exports = {
10599
c: 'Miscellaneous',
106100
d: 'Exercises: extending the bloglist',
107101
},
108-
8: {
109-
a: 'GraphQL-server',
110-
b: 'React and GraphQL',
111-
c: 'Database and user administration',
112-
d: 'Login and updating the cache',
113-
e: 'Fragments and subscriptions',
114-
},
102+
8: {},
115103
9: {
116104
a: 'Background and introduction',
117105
b: 'First steps with TypeScript',

0 commit comments

Comments
 (0)