Giter Club home page Giter Club logo

portfolio-jl's Introduction

project-logo

PORTFOLIO-JL

Crafting seamless experiences with code mastery!

license last-commit repo-top-language repo-language-count


Table of Contents

Overview

The portfolio-jl project is a dynamic portfolio website built with Next.js and React components. It offers a visually appealing layout with sections for showcasing projects, personal information, services, and contact details. The project leverages Tailwind CSS for consistent styling and responsiveness, enhancing user experience. Key features include interactive project sliders, theme toggling, dynamic navigation, and form submissions. With a focus on modularity and user engagement, portfolio-jl presents a comprehensive overview of skills and projects while promoting seamless navigation and interaction for visitors.


Features

Feature Description
โš™๏ธ Architecture The project has an architecture built on React, Next.js, and Tailwind CSS, integrating various components like Hero, About, Services, and Navigation. Speed insights, analytics, Swiper, and other libraries are utilized for performance and functionality. Dockerfile for deployment and pnpm for package management.
๐Ÿ”ฉ Code Quality The codebase maintains quality with structured component files, form handling, and UI components like button, carousel, and modal sheets. Consistent styling with Tailwind CSS and Autoprefixer. Linting with ESLint. Scalability is ensured with Node 18 in Dockerfile.
๐Ÿ“„ Documentation Extensive documentation includes jsconfig.json for import resolution, postcss.config.js for styling plugins, and Dockerfile for Next.js deployment. Package.json manages dependencies, and README provides project overview. Component files have detailed descriptions for functionality and usage.
๐Ÿ”Œ Integrations Integrates various libraries such as clsx, embla-carousel-react, react-icons, framer-motion, and zod for enhanced functionality and styling. Next-themes for theme management, Radix UI for tabs and labels, and React Hook Form for form handling. Speed insights and analytics for performance monitoring.
๐Ÿงฉ Modularity Codebase exhibits modularity with components like Work, Header, Socials, providing clear functionality and visual elements. UI components like Button, Card, Form, and Carousel ensure reusable and maintainable code. Path aliases and structured imports enhance modular development.
๐Ÿงช Testing Testing practices not explicitly mentioned in the provided details.
โšก๏ธ Performance Performance optimization achieved through efficient image loading, animated count updates using React CountUp, and Autoprefixer for cross-browser compatibility. Implementation of Swiper carousel and smooth animations with Framer Motion enhance user experience. Docker image setup ensures portability and predictability.
๐Ÿ›ก๏ธ Security Measures for data protection and access control not explicitly discussed in the provided details. It's recommended to ensure secure handling of user inputs and sensitive data within the application.
๐Ÿ“ฆ Dependencies Key external libraries and dependencies include clsx, embla-carousel-react, react-icons, framer-motion, zod, Next-themes, and Radix UI components like tab and dialog. Tailwind CSS plugins and Autoprefixer for styling. Linting with ESLint. Deployment with Dockerfile and Node 18.

Repository Structure

โ””โ”€โ”€ portfolio-jl/
    โ”œโ”€โ”€ Dockerfile
    โ”œโ”€โ”€ README.md
    โ”œโ”€โ”€ app
    โ”‚   โ”œโ”€โ”€ contact
    โ”‚   โ”œโ”€โ”€ favicon.ico
    โ”‚   โ”œโ”€โ”€ globals.css
    โ”‚   โ”œโ”€โ”€ layout.jsx
    โ”‚   โ”œโ”€โ”€ page.jsx
    โ”‚   โ”œโ”€โ”€ projects
    โ”‚   โ””โ”€โ”€ template.jsx
    โ”œโ”€โ”€ components
    โ”‚   โ”œโ”€โ”€ About.jsx
    โ”‚   โ”œโ”€โ”€ Badge.jsx
    โ”‚   โ”œโ”€โ”€ Cta.jsx
    โ”‚   โ”œโ”€โ”€ DevImg.jsx
    โ”‚   โ”œโ”€โ”€ Footer.jsx
    โ”‚   โ”œโ”€โ”€ Form.jsx
    โ”‚   โ”œโ”€โ”€ Header.jsx
    โ”‚   โ”œโ”€โ”€ Hero.jsx
    โ”‚   โ”œโ”€โ”€ Logo.jsx
    โ”‚   โ”œโ”€โ”€ MobileNav.jsx
    โ”‚   โ”œโ”€โ”€ Nav.jsx
    โ”‚   โ”œโ”€โ”€ ProjectCard.jsx
    โ”‚   โ”œโ”€โ”€ Services.jsx
    โ”‚   โ”œโ”€โ”€ Socials.jsx
    โ”‚   โ”œโ”€โ”€ ThemeProvider.jsx
    โ”‚   โ”œโ”€โ”€ ThemeToggler.jsx
    โ”‚   โ”œโ”€โ”€ Work.jsx
    โ”‚   โ””โ”€โ”€ ui
    โ”œโ”€โ”€ components.json
    โ”œโ”€โ”€ hooks
    โ”‚   โ””โ”€โ”€ useScrollProgress.jsx
    โ”œโ”€โ”€ jsconfig.json
    โ”œโ”€โ”€ lib
    โ”‚   โ””โ”€โ”€ utils.js
    โ”œโ”€โ”€ next.config.mjs
    โ”œโ”€โ”€ package.json
    โ”œโ”€โ”€ pnpm-lock.yaml
    โ”œโ”€โ”€ postcss.config.js
    โ”œโ”€โ”€ public
    โ”‚   โ”œโ”€โ”€ about
    โ”‚   โ”œโ”€โ”€ contact
    โ”‚   โ”œโ”€โ”€ cta
    โ”‚   โ”œโ”€โ”€ dots-dark.svg
    โ”‚   โ”œโ”€โ”€ dots-light.svg
    โ”‚   โ”œโ”€โ”€ hero
    โ”‚   โ”œโ”€โ”€ jl-first.png
    โ”‚   โ”œโ”€โ”€ logo.svg
    โ”‚   โ”œโ”€โ”€ logo2.svg
    โ”‚   โ”œโ”€โ”€ logo3.svg
    โ”‚   โ”œโ”€โ”€ reviews
    โ”‚   โ””โ”€โ”€ work
    โ””โ”€โ”€ tailwind.config.js

Modules

.
File Summary
components.json Defines component style configurations, Tailwind setup, and path aliases for the UI components in the project. Aligns global styles and Tailwind CSS settings with the component framework using the specified schema.
pnpm-lock.yaml This code file in the portfolio-jl repository serves as a key component in configuring the layout and structure of the web application. It leverages React components to define the overall appearance and organization of the portfolio website. Through the use of layout.jsx and template.jsx, it ensures a cohesive and visually appealing presentation of content, enhancing the user experience.
jsconfig.json Defines path aliases for modular import resolution, enabling simplified component imports across the React-based portfolio website.
Dockerfile Builds Docker images for a Next.js application. Uses Node 18 for predictability. Sets up work directory, installs dependencies with pnpm, and prepares production image. Exposes port 3000 and starts the application.
postcss.config.js Implements Tailwind CSS and Autoprefixer plugins for styling in the project, ensuring consistent design and browser compatibility across components and layouts.
tailwind.config.js Defines Tailwind CSS settings for responsive design, color schemes, animations, and background images. Integrates with project components and pages for consistent styling across the web app. Enhances UI experience through Tailwind plugins.
package.json Defines project metadata, dependencies, and build scripts. Manages Next.js development, linting, and production. Specifies various libraries like React, Tailwind CSS, and Framer Motion essential for the projects functionality and styling.
next.config.mjs Defines default Next.js configuration for the repository.
components
File Summary
Work.jsx Showcases latest projects in a slider format with project cards. Offers links to detailed project information. Engages users with concise project summaries and a call-to-action button to view all projects.
Header.jsx Implements dynamic header behavior for navigation in the React-based portfolio site. Utilizes scroll position and page pathname to adjust header appearance. Includes logo, navigation links, theme toggler, and mobile navigation components for a cohesive user experience.
ThemeProvider.jsx Enables theme management for app components using next-themes. Integrates theming functionality across the portfolio site seamlessly.
Socials.jsx Enables linking to social profiles with icons in a styled container. Supports Github and LinkedIn profiles. Promotes interaction and networking on the website.
About.jsx Displays personal and professional information using tabs for easy navigation. Includes sections for personal details, skills, qualifications, and tools used daily. Delivers a comprehensive overview of skills, tech proficiency, and work experience within a clean and organized layout.
Services.jsx Showcases services like Web, Mobile, and Backend Development with respective descriptions and icons. Organized in a grid layout, each service is displayed in a card format, emphasizing the technology stack used. The component contributes to the portfolio websites section dedicated to highlighting professional services offered.
Footer.jsx Defines the Footer component presentation with a Socials section for sharing and copyright notice.
ThemeToggler.jsx Enables toggling between light and dark themes in the portfolio. Utilizes Button component and icons for switch. Interacts with Next.js theme context for seamless theme switching.
Form.jsx Enables form submission with user details and message. Integrates input fields, a textarea, and a submission button, styled with icons for a visually appealing user experience within the portfolio-jl repositorys architecture.
MobileNav.jsx Enables mobile navigation with a collapsible menu triggered by a hamburger icon. Displays logo, navigation links, and social icons in a responsive layout, optimizing user experience on small screens.
Hero.jsx Implements a hero section with key information and call-to-action buttons. Displays a developers introduction, expertise, and social links. Includes badges for experience, projects, and client count. Shows a developer image and scroll-down icon.
Cta.jsx This component encourages users to engage by offering assistance and prompting action through a call-to-action button linked to the contact page. It plays a pivotal role in soliciting user interaction within the portfolio websites architecture.
DevImg.jsx Implements a reusable component for developer images in the portfolio site. Integrates Next.js image optimization for efficient loading and responsive design.
Nav.jsx Defines navigation links dynamically based on page path in Next.js, enhancing user experience with smooth page transitions. Integrates Framer Motion for stylish animations, improving visual appeal and interaction within the portfolio website structure.
ProjectCard.jsx Creates** visually appealing project cards with dynamic image loading and interactive buttons for GitHub and project links. Organizes project details elegantly within a styled card component for seamless integration into the portfolio websites UI.
Logo.jsx Implements a logo component linking to the homepage using Next.js routing. It showcases the logo image with a rounded design for the portfolio website, enhancing branding and navigation experience for users within the parent repositorys architecture.
Badge.jsx Implements a Badge component for displaying dynamic count and text. Used to showcase achievements or statistics visually. Key features include animated count updates with React CountUp and customizable styles for various use cases in the portfolio website.
components.ui
File Summary
tabs.jsx Implements interactive tabs for user navigation within the portfolio website. Connects with Radix UIs tab components for seamless functionality.
label.jsx Enhances label styling using class variance for React components. Integrates Radix UIs label component with custom styles for font size, weight, and cursor effects. Facilitates seamless application of label styling across the project.
button.jsx Defines button variants and styling for the UI components. Integrates diverse design options like default, destructive, outline, secondary, ghost, and link styles, with various sizes. Maintains a clean, reusable code structure for enhancing button functionalities within the portfolio website.
sheet.jsx Enables rendering interactive modal sheets with configurable content structure, style variants, and animations. Facilitates user interactions through triggers, close buttons, and overlay options. Enhances user experience by providing flexible components for presenting information within the application flow.
badge.jsx Implements badge styling variants to enable flexible visual representation.
card.jsx Defines reusable UI components for cards with structured layouts and styling in the portfolio website, enhancing modularity and extensibility. Includes components for card content, header, title, description, and footer, improving code organization and maintainability in the architecture.
form.jsx Defines form components for structured form handling within a React app. Includes entities for form field context, label, control, description, and messages. Facilitates seamless integration of form elements with user input validation and feedback.
textarea.jsx Enhances text inputs with custom styles for the portfolio website. Integrates dynamic classes for consistent UX across multiple components. Extends React functionality for reusable and maintainable code.
input.jsx Defines a reusable React Input component with customizable styles for the portfolio website.
carousel.jsx Enables interactive carousel navigation with previous and next slide controls. Manages carousel state and orientation, allowing seamless slide transitions. Facilitates smooth user experience within the portfolio sites UI structure.
app
File Summary
globals.css Defines color variables and styles for a Tailwind-based design system. Sets base colors and dark mode variants. Applies typography and layout styles for headings, subtitles, section titles, and badges. Also customizes Swiper bullet styles.
layout.jsx Implements the layout structure for the website, integrating the header, footer, and theming. Utilizes speed insights and analytics components for performance monitoring.
template.jsx Implements a scroll progress bar using animation effects in the portfolio website. Displays content using motion transitions and dynamic completion tracking.
page.jsx Hero, About, Services, Work, and Call to Action components. Integrates analytics and speed insights from Vercel.
app.projects
File Summary
page.jsx Implements project filtering and display based on categories. Utilizes Tabs component for navigation. Offers a concise overview of featured projects with images, categories, names, descriptions, links, and GitHub references. Enhances user experience through dynamic content presentation within the portfolio architecture.
app.contact
File Summary
page.jsx Showcases Contact section UI with key details such as text, illustrations, contact information, and a form. Utilizes Socials component for social icons display. Designed for the portfolio-jl website architecture.
lib
File Summary
utils.js Combines CSS classes using Tailwind CSS utilities for better styling in the portfolio website.
hooks
File Summary
useScrollProgress.jsx Calculates scroll progress percentage in a custom React hook. Monitors scrolling events and updates the progress state based on scroll position relative to total scrollable height.

Getting Started

System Requirements:

  • JavaScript: version x.y.z

Installation

From source

  1. Clone the portfolio-jl repository:
$ git clone https://github.com/cortex225/portfolio-jl
  1. Change to the project directory:
$ cd portfolio-jl
  1. Install the dependencies:
$ npm install

Usage

From source

Run portfolio-jl using the command below:

$ node app.js

Tests

Run the test suite using the command below:

$ npm test

Project Roadmap

  • โ–บ INSERT-TASK-1
  • โ–บ INSERT-TASK-2
  • โ–บ ...

Contributing

Contributions are welcome! Here are several ways you can contribute:

Contributing Guidelines
  1. Fork the Repository: Start by forking the project repository to your github account.
  2. Clone Locally: Clone the forked repository to your local machine using a git client.
    git clone https://github.com/cortex225/portfolio-jl
  3. Create a New Branch: Always work on a new branch, giving it a descriptive name.
    git checkout -b new-feature-x
  4. Make Your Changes: Develop and test your changes locally.
  5. Commit Your Changes: Commit with a clear message describing your updates.
    git commit -m 'Implemented new feature x.'
  6. Push to github: Push the changes to your forked repository.
    git push origin new-feature-x
  7. Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
  8. Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
Contributor Graph


License

This project is protected under the SELECT-A-LICENSE License. For more details, refer to the LICENSE file.


Acknowledgments

  • List any resources, contributors, inspiration, etc. here.

Return


portfolio-jl's People

Contributors

cortex225 avatar deepsource-autofix[bot] avatar deepsource-io[bot] avatar

Watchers

 avatar

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.