Skip to content

SyntaxAdi/Kali-Portfolio

Repository files navigation

Project Logo

❯ REPLACE-ME

Experience a living portfolio, powered by interactive innovation

Built with the tools and technologies:

JSON npm Autoprefixer PostCSS JavaScript
React Vite ESLint CSS


Table of Contents

I. Table of Contents
II. Overview
III. Features
IV. Project Structure
    IV.a. Project Index
V. Getting Started
    V.a. Prerequisites
    V.b. Installation
    V.c. Usage
VI. Contributing


Overview


Features

Component Details
⚙️ Architecture
  • Vite‑powered React SPA (single‑page application)
  • Functional components with React Hooks
  • Tailwind CSS for utility‑first styling
  • CSS‑in‑JS via clsx & tailwind‑merge for dynamic class composition
  • Animation layer built with framer‑motion
🔩 Code Quality
  • ESLint configured with eslint-plugin-react, eslint-plugin-react-hooks, and eslint-plugin-react-refresh
  • Type definitions via @types/react & @types/react-dom (TypeScript‑friendly)
  • Consistent import ordering & formatting enforced by prettier (if present in repo)
  • Strict lint rules for JSX accessibility & hook rules
📄 Documentation
  • Package metadata in package.json (scripts, dependencies, repo link)
  • Potential README with setup & dev commands (not shown)
  • JSX component comments & JSDoc style hints (if any)

Project Structure

└── /
    ├── components.json
    ├── eslint.config.js
    ├── index.html
    ├── jsconfig.json
    ├── package-lock.json
    ├── package.json
    ├── postcss.config.js
    ├── public
    │   ├── hills.mp3
    │   ├── login-page.mp4
    │   ├── music.jpg
    │   ├── right-panel.mp4
    │   ├── vite.svg
    │   ├── wallpaper_1.jpg
    │   ├── wallpaper_2.jpg
    │   └── wallpaper_3.jpg
    ├── src
    │   ├── App.jsx
    │   ├── components
    │   ├── context
    │   ├── index.css
    │   ├── lib
    │   └── main.jsx
    ├── tailwind.config.js
    └── vite.config.js

Project Index

/
__root__
⦿ __root__
File Name Summary
components.json - Configures the UI component scaffolding system across the application, establishing the schema, default styling, Tailwind integration, and icon library preferences
- Sets path aliases for streamlined imports and defines external component registries, enabling consistent generation and theming of components throughout the codebase while aligning with the projects design system and build pipeline.
eslint.config.js - Configures the projects linting environment by establishing global ignore patterns, applying recommended ESLint, React Hooks, and Vite refresh rule sets, and defining language options for modern JavaScript and JSX
- It also customizes a rule to flag unused variables unless they match a specific naming convention, ensuring consistent code quality across the entire codebase.
index.html - Serves as the entry point for the Kali Portfolio web application, establishing the HTML skeleton that loads the React root component and integrates Tailwind styling
- It defines metadata for SEO and responsive behavior, links the favicon, and references the main JavaScript bundle, enabling the single‑page interface to render within the browser.
jsconfig.json - Enabling streamlined import paths across the application, the configuration defines the project’s base directory and maps the @ alias to the source folder
- This setup allows developers and tooling to resolve modules consistently, improving code readability and navigation within the IDE while supporting JavaScript and TypeScript features throughout the codebase.
package-lock.json - Stabilizes builds – ensures that the UI components, animation utilities, and icon sets referenced throughout the codebase resolve to the same, vetted versions each time the project is installed
- 2
-
Facilitates reproducible deployments – CI/CD workflows can reliably restore the exact dependency graph, preventing “works on my machine” discrepancies
- 3
-
Supports security and auditability – the locked versions make it straightforward to run vulnerability scans and apply targeted updates without unintentionally drifting the dependency set
- 4
-
Enables deterministic bundling** – tools like Webpack, Vite, or Next.js (used elsewhere in the repo) can produce consistent bundles because the underlying libraries never change unexpectedly.Overall, package-lock.json underpins the stability, consistency, and security of the entire application stack, acting as the glue that binds the development, testing, and production phases together.
package.json - Defines the project’s metadata, script commands, and dependency graph that power a Vite‑based React application
- It orchestrates development, building, linting, and preview workflows while declaring runtime libraries such as React, Tailwind, animation and icon packages, and development tools like ESLint and TypeScript typings, forming the core manifest for the entire codebase.
postcss.config.js - Configures the projects CSS processing pipeline by integrating Tailwind CSS and Autoprefixer through PostCSS, enabling utility‑first styling and automatic vendor prefix generation across all builds
- By centralizing these plugins, it ensures consistent styling conventions, streamlined development workflow, and compatibility with a wide range of browsers, supporting the overall front‑end architecture and design system.
tailwind.config.js - Configures Tailwind CSS to scan HTML and source files, extending the design system with custom background and foreground colors, a rainbow animation, and associated keyframes
- Integrates these styles globally across the application, enabling consistent theming and animated visual effects without additional CSS, and supports the overall UI architecture by centralizing style definitions for maintainability.
vite.config.js - Configures the Vite development server to support React, establishing module resolution shortcuts that map the @ alias to the source directory
- By integrating the React plugin and defining path aliases, it streamlines imports across the codebase, enabling faster builds and consistent referencing throughout the application’s front‑end architecture and improving developer productivity.
src
⦿ src
File Name Summary
App.jsx - Orchestrates the user experience of the simulated desktop environment by managing high‑level application states—quote, boot, login, desktop, and shutdown
- It supplies a window‑manager context, selects and cycles wallpapers, and conditionally renders the appropriate screen components, enabling seamless transitions between system phases while integrating the desktop, window, and shutdown sequences within the overall architecture.
index.css - Establishes the global styling foundation for the application by loading Tailwind’s base, component, and utility layers, defining CSS custom properties for light/dark themes, and applying full‑screen layout resets
- It also introduces visual effects—CRT glow, scanline, cursor blink, typing, window transitions, fade‑in, and a custom scrollbar—ensuring a cohesive, retro‑styled UI across all React components.
main.jsx - Bootstraps the React application by mounting the root component onto the HTML element with id root, wrapping the UI in StrictMode to enforce best practices, and importing global styles and the primary App component
- It serves as the entry point that connects the DOM, stylesheet, and component hierarchy, initiating the rendering pipeline for the entire project.
components
⦿ src.components
File Name Summary
Activities.jsx - Provides the interactive Activities panel that serves as the central hub for launching internal apps, viewing system information, and accessing external links within the portfolio UI
- Integrated with the WindowManager context, it toggles between a grid of app shortcuts and an about view, while also offering connection shortcuts and a shutdown trigger, tying together user navigation and window management.
BootSequence.jsx - Displays an animated boot‑up screen that mimics a Linux system startup, sequentially revealing log lines and a progressing bar while the application initializes
- Integrated as the entry point visual, it occupies the full viewport, creates a retro terminal atmosphere, and invokes a callback once the simulated boot completes, allowing the main interface to render.
Desktop.jsx - Provides the interactive desktop layer of the web‑based operating system, rendering the wallpaper, icons, context menu, side dock, right panel, power menu, and activity overlay while coordinating window management through the global context
- It serves as the visual foundation that hosts child windows and user‑initiated apps such as Terminal and About, tying UI interactions to system actions.
KaliLogo.jsx - Provides a reusable React component that renders the Kali Linux SVG logo, accepting customizable className and size props for styling and scaling
- Integrated into the shared UI library, it enables consistent branding across the application, allowing developers to embed the logo in headers, footers, and other visual elements while adhering to the design system.
LoginScreen.jsx - LoginScreen component delivers an immersive, animated entry interface for the application, presenting real‑time clock, weather, system stats, music playback, and notification widgets while handling password authentication
- It receives a wallpaper prop for dynamic backgrounds and triggers the onLogin callback upon successful entry, serving as the primary gateway that unifies visual theming and user interaction across the portfolio project.
MediaWidget.jsx - Provides an animated, fixed-position media control widget that displays album art, track information, and playback controls, integrating with the app’s global UI layer
- It leverages React state for play/pause toggling and uses framer‑motion for entrance animation and hover effects, contributing to the interactive user experience across the dashboard within the overall application.
PowerMenu.jsx - Provides a slide‑in power menu overlay that integrates with the application’s global UI layer, offering quick access to log‑off and power‑off actions
- Positioned as a fixed right‑hand panel, it animates in and out, dims the background, and displays a user avatar video, ensuring consistent interaction patterns across the desktop‑style interface.
QuoteScreen.jsx - Provides an animated introductory splash screen that showcases the brand logo and a motivational quote, fading in with motion effects
- After a brief display period, it triggers a callback to signal completion, allowing the application to transition seamlessly to the primary interface
- Serves as the entry‑point visual experience within the overall UI flow.
RightClickMenu.jsx - Provides a contextual right‑click menu overlay that appears at the cursor position, offering quick access to core actions such as refreshing the view, changing the desktop background, opening settings, and launching a terminal
- Integrated with the main UI layer, it enhances user interaction by handling visibility, positioning, and delegating selected commands to higher‑level application handlers.
RightPanel.jsx - Provides a right‑hand side control panel that slides into view on hover, offering vertical sliders for adjusting brightness and volume, integrating animated transitions and visual feedback within the UI layer, enhancing user interaction across the application
- It connects to the applications state management to persist user preferences, and its design aligns with the dark‑themed aesthetic of the platform, ensuring consistency with other components and facilitating future extension for additional controls.
ShutdownSequence.jsx - Provides a visual shutdown sequence component that displays system logs, animates a progress bar, and signals completion to the parent component, integrating with the application’s UI flow to simulate a Kali Linux power‑off screen
- It coordinates timed state updates, leverages Framer Motion for smooth transitions, and serves as the final interactive step before navigating away from the main interface.
SidePanel.jsx - App Launching & Window Management – It consumes the WindowManagerContext to open, focus, and close the core applications (Terminal, VS Code, Chrome, Projects, Music Player)
- In doing so, it acts as the bridge between the user’s click/tap actions and the global window‑manager state that governs all open windows across the codebase.2
-
Visual Navigation Hub – By rendering a set of icons (Lucide icons, a custom Pac‑Man SVG, and the KaliLogo), it provides a consistent, always‑visible entry point for users to access the main tools of the platform
- The dock’s hover and focus states give immediate visual feedback, reinforcing the desktop metaphor.3
-
Animated, Context‑Aware UI – Leveraging framer‑motion and AnimatePresence, the panel delivers smooth entry/exit animations and preview pop‑overs for each app, enhancing the overall user experience without affecting the underlying business logic.4
-
Integration Point for New Apps – Because the dock imports app components from src/components/apps/, adding a new application is as simple as adding its component to the import list and a corresponding DockItem
- This makes the side panel the canonical place for expanding the platform’s functionality.
Architectural Placement-Location: src/components/SidePanel.jsx – part of the UI layer.-Dependencies:-Context: useWindowManager (global state for window handling).-App Modules: TerminalApp, VSCodeApp, ChromeApp, ProjectsApp, MusicPlayerApp.-Styling/Animation:* framer-motion, Lucide icons, custom SVGs
- In the broader architecture, SidePanel sits alongside other top‑level UI components (e.g., the desktop background, taskbar, and individual app windows)
- It does not contain business logic itself; instead, it orchestrates user intent into actions that the window manager processes
Taskbar.jsx - Taskbar component renders the desktop’s bottom navigation bar, integrating the start menu, system tray, and clock while interfacing with the global window manager to launch applications
- It provides users with quick access to the app launcher, status indicators for network, volume, and battery, and a consistent UI anchor for activity toggling across the portfolio’s simulated operating system.
Window.jsx - Provides a draggable, resizable window component that integrates into the desktop UI layer, managing focus, maximize, minimize, and close actions while displaying a customizable title bar and content area
- It leverages motion animations for smooth positioning and size transitions through responsive state handling, enabling consistent window behavior across the application’s interactive interface.
apps
⦿ src.components.apps
File Name Summary
About.jsx - Displays a stylized personal profile within the React‑based desktop environment, presenting ASCII‑styled Kali branding, system‑like specifications, a color palette, and a brief bio
- Serves as the About application, anchoring the portfolio’s thematic UI and linking the shared ASCII library to the overall component hierarchy, reinforcing the immersive terminal‑styled user experience.
Chrome.jsx - Provides an embedded web browser component that integrates into the application’s modular app framework, offering a Chrome‑style toolbar with navigation, refresh, and address input
- It manages user‑entered URLs, renders external pages within a sandboxed iframe, and displays a loading overlay for sites that restrict framing, enabling seamless browsing experiences within the broader React UI.
MusicPlayer.jsx - Provides a reusable music player interface within the application’s component library, presenting album artwork, track information, progress visualization, and playback controls
- Integrated with the global UI theme, it manages local play/pause state and progress percentage, enabling consistent media interaction across the app’s various pages and contributing to the overall user experience design.
Projects.jsx - Renders a responsive Projects Directory within the portfolio’s main UI, presenting each portfolio entry as a styled card
- Integrates iconography, external and source links, and tag badges while adhering to the app’s dark theme and layout conventions
- Serves as the visual gateway for visitors to explore demos and code repositories across the showcased technologies.
Skills.jsx - Renders a full‑screen, scrollable view of categorized technical competencies, integrating into the app’s component hierarchy as the Skills page
- It pulls a static skill map, iterates over each category, and presents items in responsive grids styled with Tailwind, contributing to the portfolio’s showcase section and maintaining visual consistency across the UI.
Terminal.jsx - Provides an interactive, stylized terminal interface within the application, handling user input, command parsing, and dynamic output history
- Integrates a toggleable Matrix rain visual effect for aesthetic immersion and ensures auto‑scrolling, focus management, and responsive sizing
- Serves as the primary entry point for simulated shell commands, enriching the user experience in the portfolio’s UI layer.
VSCode.jsx - Renders a stylized VS Code‑like interface as a React component, integrating with the window management system to appear as an independent app within the portfolio
- It supplies a title bar, sidebar, editor pane with syntax‑highlighted sample code, and status bar, enabling users to explore project files interactively while maintaining the overall dark theme and layout consistency across the application.
context
⦿ src.context
File Name Summary
WindowManagerContext.jsx - Provides a global window management context that tracks open application windows, their focus state, and lifecycle actions across the UI
- Exposes hooks for components to open, close, and focus windows, enabling centralized state handling for the desktop‑like environment
- Integrates with the provider hierarchy, allowing any descendant to interact with window behavior consistently.
lib
⦿ src.lib
File Name Summary
ascii.js - Providing a stylized Kali Linux ASCII banner, the exported constant serves as a reusable visual identifier throughout the command‑line interface
- Integrated into the library layer, it enables consistent branding whenever the application renders startup messages, help screens, or decorative output, centralizing the artwork for easy maintenance and uniform presentation across the entire codebase.
utils.js - Provides a centralized utility for composing CSS class strings, merging Tailwind classes while handling conditional logic
- By wrapping class concatenation and conflict resolution, it standardizes styling across components, reduces duplication, and ensures consistent visual output throughout the application
- This helper integrates with the UI layer, enabling developers to apply dynamic class names reliably within the broader architecture.

Getting Started

Prerequisites

This project requires the following dependencies:

  • Programming Language: JavaScript
  • Package Manager: Npm

Installation

Build from the source and intsall dependencies:

  1. Clone the repository:

    ❯ git clone ../
  2. Navigate to the project directory:

    cd 
  3. Install the dependencies:

    Using npm:

    npm install

Usage

Run the project with:

Using npm:

npm run dev

Contributing

  • 💬 Join the Discussions: Share your insights, provide feedback, or ask questions.
  • 🐛 Report Issues: Submit bugs found or log feature requests for the Word Grid Solver project.
  • 💡 Submit Pull Requests: Review open PRs, and submit your own PRs.
  • 🌟 New Feature or Idea?: If you're looking to outsource your project and want someone who delivers without excuses, I’m available for end-to-end development across multiple domains.
Contributing Guidelines
  1. Fork the Repository: Start by forking the project repository to your LOCAL account.
  2. Clone Locally: Clone the forked repository to your local machine using a git client.
    git clone .
  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 LOCAL: 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!


About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published