Deployed on : https://www.hatemdeux.com via GitHub-Pages.
- The visual layout and color design of this website is influenced by the famous Jack's previous portfolio design.
- No code influence. Code is totally me.
- This website is limited to Front-End only to save costs.
- Lots of Data for this website are sensitive or personal and are
.gitignored
.- This repo is meant as a remote repo and a show of work. not for cloning.
- If you try cloning and running, it will break due to missing data imports. This is done on purpose.
- For further information on the Data & DataStructure, See DATA_STRUCTURE.md.
- Check CHANGELOG.md.
This Website acts as :
-
A Portfolio & show of work
-
A Demo in itself, build from scratch with React and Vanilla-CSS.
-
An opportunity to:
- Strengthen React skills.
- Strengthen my CSS skills (including animation for the first time) and fill gaps of its knowledge.
- Get exposed to SVG.
- Strengthen Front-end skills.
- Learn some design patterns.
- Learn some DevOps (1st).
Disclaimer : Not tested on Apple/Safari.
This Web-app works well on big screens as well as small mobile screens.
This web-app is bilingual (Canadian-English & Québec-French), reflecting my location: Montréal, QC, Canada.
- press the top-right button to toggle between both languages.
On your left, a vertical "Header" is displayed, divided into 3 parts:
- The Logo & below it a temp message if any (e.g '
beta
' or 'work in progress
') - The navigation tabs / buttons
- a list of referencial social-network profiles icons. (e.g. '
LinkedIn
', 'GitHub
', ...)
An SVG-component amateurly designed by yours truly using Figma.
(i.e. couldn't afford it done professionally).
The logo reflects my name: "Hatem deux" -> "Hat-em-2":
- a Hat
- the hat's top section is shaped as an "M" == "em"
- a number 2 at the very top and as a Roman-numeral as the nose.
- the mustache and mouth as "Hatem" in Barcode and typed under.
- the glasses.. well because I wear them. :)
The portfolio-app is divided into 5
parts displayed as navigation tab-buttons:
- Home | Accueil : the welcome page.
- About | À Propos : a little about how I am.
- Skills | Compétence : a little about my skill set.
- My Work | Mon Travail : a list of projects I made or participated in.
- Contact | Contact : How to contact me.
- All but the "My Work | Mon Travail" tab are straight forward.
Each project is represented as a vertical game-like card (think 'Monopoly'), divided into 4 parts:
- The screenshot image.
- The project's title
- The description and my role (if any).
- The footer: consisting of 3 parts:
- an external-link to project's repo (opens a new page)
- a list of icons representing the Project's stack
- an external-link to project's deployed-website (if any) (opens a new page)
- HTML & Vanilla CSS.
- React JS: Functional-components
- Intentional no back-end to save costs. Data has been saved in a series of
.json
files or within React-Components.
- No database system (no back-end)
- Much of data are stored in
.json
files mostly under the.gitignored
db
directory located at./src/db/
. - Logic behind .json files is to let it be upgrade-ready shall a back-end is installed in the future.
- For more information on the Data & DataStructure, See DATA_STRUCTURE.md.
React:
react: 17.0.1
react-dom: 17.0.1
react-scripts: 4.0.1
react-router-dom: 5.2.0
react-icons: 4.1.0
react-responsive: 8.2.0
typewriter-effect: 2.17.0
gh-pages: 3.2.0
This is just for show of work. it is not meant for cloning or installing on your system.
npx create-react-app
yarn add
| or |yarn add <dependency>
yarn add <devDependency> --dev
yarn deploy
, which will:yarn build
(added topackage.json
'sscripts
aspredepoly
)gh-pages -d build
(added topackage.json
'sscripts
asdepoly
)
- Go to the data Structure.
- Go to the changelog.