Giter VIP home page Giter VIP logo

lobe-clone's Introduction

Lobe.ai clone

Fully responsive Lobe.ai informational website clone MVP. Live demo here.

Clean Architecture

📦src => Main source code container
 ┣ 📂assets => Media elements that are used in the page.
 ┣ 📂components => Components that are used in multiple pages or layouts.
 ┣ 📂configs => Configuration for the different components of the application.
 ┣ 📂hooks =>Custom React Hooks to handle different functionalities or effects.
 ┣ 📂layouts => Main layout components that give the general structure to the web site UI.
 ┃ ┣ 📂header
 ┃ ┣ 📂footer
 ┃ ┣ 📂skeleton
 ┣ 📂pages => Components that generate the pages of the web site.
 ┣ 📂tests => Files for testing.
 ┣ 📂utilities => Functions that are common across the project.

Optimization Techniques used:

  • Lazy Loading for Images and Components with Lazy, Suspense and the react-lazy-load-image-component library.
  • Font import optimization with .... font-display (swap) https://web.dev/optimize-webfont-loading/
  • CDN ready for the files.. (I have to get the URL for the files in a function or component)
  • Intersection Observer for the video playback.
  • Video preload="metadata" to download some metadata before the full video is downloaded. With this the application will have some information ahead of time

Table of Contents

General Information

  • This is a frontend project developed Rect with Typescript and Vite. The objectives are (1) be a playground for techniques that improve the performance of pages that use a large number of video and image elements and (2) be a placeholder for general React TS components I am using in real projects.

Technologies and Techniques used

Planning and Design:

  • The duration of the project was 2.5 weeks.
  • The planning was done with the User Story Mapping technique, you can fin the different Story Maps created in the corresponding Features section below.
  • The UI was ispired by the real lobe.ai website
  • The Wireframes implemented and to be on this project were build in Figma and can be found here. The Final UI was implemented using the official LinkedIn documentation about Colors and Typography.
  • The Entity Relationship Diagram (ERD) can be found here.
  • The internal project architecture was implemented following the concepts of the CLEAN Architecture.
  • Overal code documentation was done leveraging JSDocs.
  • GitHub Actions was used to deploy the web.

Front-end:

Testing:

  • Unit testing was done.
  • Test coverage is 45% and is increasing using Jest and react-testing-library is being used.
  • While testing, the project was run using the Chrome's Development Tools "Fast 3G" and "No Caching" options. So the app is ready for slow internet connections.
  • Lighhouse was executed several times, the last result objtained was 92% overal:

Click to enlarge

Features

By clicking on the Feature name you will be redirected to the corresponsing User Story Map development in order to plan the Work to be done on each Feature.

Screenshots

Landing Page Landing Page responsive News Feed
Landing Page News Feed News Feed

Setup

Clone this project by doing:

$ git clone https://github.com/pieroguerrero/linkedin.git

Then go to the folder you cloned the code and execute:

$ npm install

WARNING: If you are going to use other libraries to achieve other purposes be carefull and remove the caret (^) prefix that the dependency versions have.

Project Status

Project is: in progress I am constantly adding some code in order to test new techologies or concepts.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.