Welcome, to my personal blog and portfolio. Sharing information is vital and especially in the dev commnunity. The blog showcases my latest works, testomines, articles, about me section, and contact me section. It mainly focuses on my current and most recent accomplishments.
[![NPM Version 7.6.3][npm-image]][npm-url]
This application was developed with a full MERN stack. and written in JavaScript. Styling done with Bootstrap, Material UI, SASS or SCSS and CSS.
M - MongoDB, NoSQL database
E - Express, a back-end framework
R - React, a client side framework
N - NodeJS - to run back end service
Dependencies used:
- Morgan - HTTP request logger middleware for node.js
- Fetch - Promise based HTTP client for the browser and node.js
- Bcrypt - A library to hash passwords
- Mongoose - for MongoDB validation
- React-Bootstrap - a React library for building pre-styled components
- Material UI - a library for building pre-styled components
- SASS - a preprocessor scripting language that is interpreted or compiled into Cascading Style Sheets
The user is brought to the home page where they can navigate to my portfolio, my blog posts, my about me, or contact page. The home page is an introduction to who I am. The is a brief history of my experience with the option to download my resume. Additionally, I have the technologies that I am currently using, a project showcase, an embbed Twitter widget, and testimonies.
Fluid font sizes - The body is set to 100% causing the font to adjust the font sizes to the browser defaults.
Best Practices:
- No pixels are used to calculate sizes
em
orrem
are used to calculate font-sizes
Width - Set max-width to 100% causing the images to grow or shrink depending on the size of the parent column.
Best Practices:
-
Have at least 150 ppi at least 300 is recommended
How to find ppi for Mac users:
- Open your image in Preview.
- Up at the top, click "Tools" > "Adjust Size"
- Uncheck the box labeled "Resample Image"
- Next, using inches, change the size of your artwork to your desired print size.
- The resolution should be at least 300 pixels per inch.
-
Compress the images You can use tools like https://compresspng.com/ to compress the image
- The browser will optimize the image due to image being so large. They will size the image down to shrink it to the webpage.
-
Alterantively, you can look into srcset
Test enpoints on test server:
Simply visit Test Server
Test endpoints locally by:
/* Change directories into Swagger Server */
cd swagger-server
/* Run Server */
npm start
/* The server will be live on http://localhost:8080/docs */
After completing the instructions to run locally click here: Local Server
- /articles
- /articles/:id
- /upload
- /destory
- /register
- /login
- /refresh_token
This project uses PM2 to keep the application alive due to faulty errors, server changes or file changes. Visit https://pm2.io/docs/plus/overview/ for details.
This project uses Winston to log events into our log manager. Visit https://github.com/winstonjs/winston for details.
This project uses Morgan to log events inside of the terminal. Visit https://github.com/expressjs/morgan for details.
Sentry is used for real-time production montioring.
React profiler is used to montior the performance of the application while in development.
How to run:
- Create a production build
npm run build -- --profile
- In Chrome dev tools place the throttle on low-end mobile
- In the profiler enable: "Record why wach component rendered while profiling"
- Target orange or darker commits
- Check if it's a state management problem or try to solve it with memoization (i.e. callback or memo)
This project uses EditorConfig to standardize text editor configuration. Visit https://editorconfig.org for details.
This project uses ESLint to detect suspicious code in JavaScript files. Visit https://eslint.org for details.
- Home Screen 618ms
- Portfolio Screen 149 ms
- Portfolio Case Study
- Blogs Screen
- Blog Post Screen
- About Screen
- Contact Screen
This project uses Jest for testing. Visit https://jestjs.io for details.
To execute tests:
npm test
- User login with the ability to add comments and like post.
- Routing for 404
- Add Calorie Kicthen, Sneaker-API, Ecommerce-Site, Ecommerce-Backend-Template, React-Crypto, Cypto-Learn, CareerConnect, and Expense-Tracker as project case studies.
- Confgiure multiple env