Skip to content

Commit 38715f9

Browse files
committed
Update portfolio
1 parent c6aa2c4 commit 38715f9

File tree

8 files changed

+88
-49
lines changed

8 files changed

+88
-49
lines changed

app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"build": "react-scripts build",
1515
"test": "react-scripts test",
1616
"eject": "react-scripts eject",
17-
"postbuild": "mv build/** ../c"
17+
"postbuild": "mv build/** ../"
1818
},
1919
"eslintConfig": {
2020
"extends": "react-app"

app/public/index.html

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,42 +2,16 @@
22
<html lang="en">
33
<head>
44
<meta charset="utf-8" />
5-
<link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico" />
65
<meta name="viewport" content="width=device-width, initial-scale=1" />
76
<meta name="theme-color" content="#000000" />
87
<meta
98
name="description"
109
content="Web site created using create-react-app"
1110
/>
12-
<link rel="apple-touch-icon" href="logo192.png" />
13-
<!--
14-
manifest.json provides metadata used when your web app is installed on a
15-
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
16-
-->
17-
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
18-
<!--
19-
Notice the use of %PUBLIC_URL% in the tags above.
20-
It will be replaced with the URL of the `public` folder during the build.
21-
Only files inside the `public` folder can be referenced from the HTML.
22-
23-
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
24-
work correctly both with client-side routing and a non-root public URL.
25-
Learn how to configure a non-root public URL by running `npm run build`.
26-
-->
27-
<title>React App</title>
11+
<title>Eugene Formanenko</title>
2812
</head>
2913
<body>
3014
<noscript>You need to enable JavaScript to run this app.</noscript>
3115
<div id="root"></div>
32-
<!--
33-
This HTML file is a template.
34-
If you open it directly in the browser, you will see an empty page.
35-
36-
You can add webfonts, meta tags, or analytics to this file.
37-
The build step will place the bundled scripts into the <body> tag.
38-
39-
To begin the development, run `npm start` or `yarn start`.
40-
To create a production bundle, use `npm run build` or `yarn build`.
41-
-->
4216
</body>
4317
</html>

app/src/App.jsx

Lines changed: 81 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,14 @@ import CssBaseline from '@material-ui/core/CssBaseline'
77
import Avatar from '@material-ui/core/Avatar'
88
import avatar from './avatar.jpg';
99
import Paper from "@material-ui/core/Paper";
10-
import LocationIcon from "@material-ui/icons/LocationCity";
10+
import LocationIcon from "@material-ui/icons/Room";
11+
import CupIcon from "@material-ui/icons/EmojiEvents";
12+
import CodeIcon from "@material-ui/icons/Code";
1113
import Typography from "@material-ui/core/Typography";
1214
import Chip from "@material-ui/core/Chip";
1315
import List from "@material-ui/core/List";
1416
import ListItem from "@material-ui/core/ListItem";
1517
import ListItemText from "@material-ui/core/ListItemText";
16-
import ListItemSecondaryAction from "@material-ui/core/ListItemSecondaryAction";
1718
import ListItemIcon from "@material-ui/core/ListItemIcon";
1819
import IconButton from "@material-ui/core/IconButton";
1920

@@ -25,7 +26,6 @@ const theme = {
2526

2627
const Github = () => {
2728
return <svg
28-
style={{opacity: 0.4}}
2929
className="MuiSvgIcon-root"
3030
focusable="false"
3131
viewBox="0 0 24 24"
@@ -52,6 +52,10 @@ const useStyles = makeStyles((theme) => ({
5252
color: theme.palette.secondary.light
5353
}
5454
},
55+
'.MuiListItemText-secondary': {
56+
opacity: 0.6,
57+
fontSize: '0.7rem'
58+
}
5559
},
5660
root: {
5761
display: 'flex',
@@ -69,7 +73,14 @@ const useStyles = makeStyles((theme) => ({
6973
link: {
7074
'&:hover': {
7175
color: 'inherit'
72-
}
76+
},
77+
'& svg': {
78+
opacity: 0.4
79+
},
80+
},
81+
small: {
82+
opacity: 0.6,
83+
fontSize: '0.7rem'
7384
}
7485
}));
7586

@@ -82,13 +93,13 @@ function App() {
8293
<Grid container spacing={40}>
8394
<Grid item alignContent="space-around" alignItems="center">
8495
<Avatar alt="Eugene Formanenko" src={avatar} className={classes.avatar}/>
85-
<Typography align="center" className={classes.name} variant="body1" color="textSecondary">Eugene
96+
<Typography align="center" variant="body1" color="textSecondary">Eugene
8697
Formanenko</Typography>
87-
<Typography align="center" className={classes.name} variant="body2" color="textSecondary">Full-stack
98+
<Typography align="center" variant="body2" color="textSecondary">Full-stack
8899
developer</Typography>
89-
<Typography align="center" className={classes.name} variant="body2" color="textSecondary">
100+
<Typography align="center" variant="body2" color="textSecondary">
90101
<Grid container justify={"center"} alignItems={"center"}>
91-
<Grid item><LocationIcon style={{opacity: 0.4, transform: 'scale(0.8)'}}/></Grid>
102+
<Grid item><LocationIcon style={{opacity: 0.4, marginTop: 3, transform: 'scale(0.8)'}}/></Grid>
92103
<Grid item>Moscow, Russia</Grid>
93104
</Grid>
94105
</Typography>
@@ -97,6 +108,16 @@ function App() {
97108
<Chip className={classes.chip} variant="outlined" size="small" label="Golang"></Chip>
98109
<Chip className={classes.chip} variant="outlined" size="small" label="React"></Chip>
99110
</Grid>
111+
<Typography style={{marginTop: 5, opacity: 0.9}} align="center" variant="body2" color="textSecondary">
112+
<Grid container justify={"center"} alignItems={"center"}>
113+
<Grid item>
114+
<CupIcon
115+
fontSize='small'
116+
style={{opacity: 0.5, marginRight: 4, marginTop: 2, color: '#ffd400'}}/>
117+
</Grid>
118+
<Grid item style={{fontSize: '0.7rem'}}>Yandex Hall of Fame</Grid>
119+
</Grid>
120+
</Typography>
100121
</Grid>
101122
<Grid item>
102123
<List dense>
@@ -106,13 +127,13 @@ function App() {
106127
className={classes.link}
107128
target="_blank"
108129
href="https://github.com/mo4islona/node-blockly"
109-
edge="end"
110130
>
111131
<Github/>
112132
</IconButton>
113133
</ListItemIcon>
114134
<ListItemText
115135
primary={<a href="http://mo4islona.github.io/blockly/" target="_blank">Node blockly</a>}
136+
secondary="Google Blockly port for Node.js via CommonJS module"
116137
/>
117138
</ListItem>
118139
<ListItem>
@@ -121,23 +142,67 @@ function App() {
121142
className={classes.link}
122143
target="_blank"
123144
href="https://github.com/mo4islona/material-go-playground"
124-
edge="end"
125145
>
126146
<Github/>
127147
</IconButton>
128148
</ListItemIcon>
129149
<ListItemText
130-
primary={<a href="http://mo4islona.github.io/material-go-playground/" target="_blank">Go material
131-
playground</a>}
150+
primary={
151+
<a href="http://mo4islona.github.io/material-go-playground/" target="_blank">
152+
Go material playground
153+
</a>
154+
}
155+
secondary="Flexible, lightweight sandbox client for goland playground"
156+
/>
157+
</ListItem>
158+
<ListItem>
159+
<ListItemIcon>
160+
<IconButton
161+
className={classes.link}
162+
target="_blank"
163+
href="https://js1k.com/2015-hypetrain/details/2241"
164+
>
165+
<CodeIcon/>
166+
</IconButton>
167+
</ListItemIcon>
168+
<ListItemText
169+
primary={
170+
<a href="https://js1k.com/2015-hypetrain/demo/2241" target="_blank">
171+
JS1K - Tear the curtain
172+
</a>
173+
}
174+
secondary="The JavaScript code golfing competition"
132175
/>
133-
134176
</ListItem>
135177
<ListItem>
136-
<ListItemText inset
137-
primary={<a href="https://js1k.com/2015-hypetrain/demo/2241" target="_blank">JS1K - Tear the
138-
curtain</a>}
178+
<ListItemIcon>
179+
<IconButton
180+
className={classes.link}
181+
target="_blank"
182+
href="https://github.com/mo4islona/zachetka-frontend-test/"
183+
>
184+
<Github/>
185+
</IconButton>
186+
</ListItemIcon>
187+
<ListItemText
188+
primary={
189+
<a href="https://mo4islona.github.io/zachetka-frontend-test/" target="_blank">
190+
Some JS test task
191+
</a>
192+
}
193+
secondary={
194+
<span>
195+
<a style={{color: '#afa8a8', fontSize: '0.7rem'}}
196+
href="https://github.com/mo4islona/zachetka-frontend-test/blob/master/README.md" target="_blank">
197+
Rules
198+
</a>
199+
&nbsp;
200+
<span className={classes.small}>(2015)</span>
201+
</span>
202+
}
139203
/>
140204
</ListItem>
205+
141206
</List>
142207
</Grid>
143208
</Grid>

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="shortcut icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="logo192.png"/><link rel="manifest" href="/manifest.json"/><title>React App</title></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(a){function e(e){for(var r,t,n=e[0],o=e[1],u=e[2],p=0,l=[];p<n.length;p++)t=n[p],Object.prototype.hasOwnProperty.call(i,t)&&i[t]&&l.push(i[t][0]),i[t]=0;for(r in o)Object.prototype.hasOwnProperty.call(o,r)&&(a[r]=o[r]);for(s&&s(e);l.length;)l.shift()();return c.push.apply(c,u||[]),f()}function f(){for(var e,r=0;r<c.length;r++){for(var t=c[r],n=!0,o=1;o<t.length;o++){var u=t[o];0!==i[u]&&(n=!1)}n&&(c.splice(r--,1),e=p(p.s=t[0]))}return e}var t={},i={1:0},c=[];function p(e){if(t[e])return t[e].exports;var r=t[e]={i:e,l:!1,exports:{}};return a[e].call(r.exports,r,r.exports,p),r.l=!0,r.exports}p.m=a,p.c=t,p.d=function(e,r,t){p.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},p.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},p.t=function(r,e){if(1&e&&(r=p(r)),8&e)return r;if(4&e&&"object"==typeof r&&r&&r.__esModule)return r;var t=Object.create(null);if(p.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:r}),2&e&&"string"!=typeof r)for(var n in r)p.d(t,n,function(e){return r[e]}.bind(null,n));return t},p.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return p.d(r,"a",r),r},p.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},p.p="/";var r=window.webpackJsonpapp=window.webpackJsonpapp||[],n=r.push.bind(r);r.push=e,r=r.slice();for(var o=0;o<r.length;o++)e(r[o]);var s=n;f()}([])</script><script src="/static/js/2.e1a65862.chunk.js"></script><script src="/static/js/main.e54e1509.chunk.js"></script></body></html>
1+
<!doctype html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><title>Eugene Formanenko</title></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(a){function e(e){for(var r,t,n=e[0],o=e[1],u=e[2],p=0,l=[];p<n.length;p++)t=n[p],Object.prototype.hasOwnProperty.call(i,t)&&i[t]&&l.push(i[t][0]),i[t]=0;for(r in o)Object.prototype.hasOwnProperty.call(o,r)&&(a[r]=o[r]);for(s&&s(e);l.length;)l.shift()();return c.push.apply(c,u||[]),f()}function f(){for(var e,r=0;r<c.length;r++){for(var t=c[r],n=!0,o=1;o<t.length;o++){var u=t[o];0!==i[u]&&(n=!1)}n&&(c.splice(r--,1),e=p(p.s=t[0]))}return e}var t={},i={1:0},c=[];function p(e){if(t[e])return t[e].exports;var r=t[e]={i:e,l:!1,exports:{}};return a[e].call(r.exports,r,r.exports,p),r.l=!0,r.exports}p.m=a,p.c=t,p.d=function(e,r,t){p.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},p.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},p.t=function(r,e){if(1&e&&(r=p(r)),8&e)return r;if(4&e&&"object"==typeof r&&r&&r.__esModule)return r;var t=Object.create(null);if(p.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:r}),2&e&&"string"!=typeof r)for(var n in r)p.d(t,n,function(e){return r[e]}.bind(null,n));return t},p.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return p.d(r,"a",r),r},p.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},p.p="/";var r=window.webpackJsonpapp=window.webpackJsonpapp||[],n=r.push.bind(r);r.push=e,r=r.slice();for(var o=0;o<r.length;o++)e(r[o]);var s=n;f()}([])</script><script src="/static/js/2.28fde34a.chunk.js"></script><script src="/static/js/main.e9d32651.chunk.js"></script></body></html>

static/js/2.28fde34a.chunk.js

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

static/js/2.e1a65862.chunk.js

Lines changed: 0 additions & 2 deletions
This file was deleted.

static/js/main.e54e1509.chunk.js

Lines changed: 0 additions & 2 deletions
This file was deleted.

0 commit comments

Comments
 (0)