Skip to content

πŸ•’ This repository contains the core source code and configuration files for the website. Feel free to modify, extend, and contribute to its development to improve functionality, add new features, and ensure the ongoing success of the project.

License

Notifications You must be signed in to change notification settings

Snigdha-OS/Snigdha-OS.github.io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Snigdha OS Web 🌐

Welcome to the Snigdha OS Web repository! This repository contains the source code, components, and resources used for building and maintaining the official website for Snigdha OS. πŸš€

Netlify Status

Table of Contents πŸ“‘

Overview 🌟

The Snigdha OS Web repository powers the official Snigdha OS website. It includes various web development components, styles, and scripts necessary for the website's functionality. The website is designed to be clean, lightweight, and user-friendly, aligning with the philosophy of Snigdha OS. πŸŽ¨πŸ’»

Features πŸ”§

  • Responsive Design πŸ“±: The website is fully responsive and works across various devices and screen sizes.
  • User Registration & Authentication πŸ”’: Integrated with the Snigdha OS user system for registration and authentication.
  • Region-based Downloads 🌍: Allows users to select regional mirrors for downloading Snigdha OS.
  • Customizable UI 🎨: Built with flexibility in mind for future enhancements and easy theming.
  • SEO Optimization πŸ“ˆ: The website is optimized for search engines to ensure better discoverability.

Technologies Used πŸ› οΈ

This project utilizes a range of modern web technologies to create a seamless and performant experience:

  • React.js βš›οΈ: A JavaScript library for building user interfaces, allowing for reusable components and a fast development workflow.
  • Node.js 🌐: A runtime environment for executing JavaScript on the server-side.
  • Express.js ⚑: A minimal web framework for Node.js used for backend API routes.
  • Redux πŸ“¦: A state management library to handle the application's state in a predictable way.
  • CSS3 🎨: For styling the website with modern layout techniques (Flexbox, Grid).
  • Sass 🧢: A CSS preprocessor to manage complex stylesheets and make the development process more efficient.
  • Webpack βš™οΈ: A module bundler for JavaScript and other assets, ensuring optimal performance and organization.
  • Jest πŸ§ͺ: A testing framework used for running unit and integration tests.
  • ESLint πŸ“: A tool for identifying and fixing issues in JavaScript code to ensure consistency and adherence to coding standards.

Dependencies & Scripts Explanation πŸ“¦πŸ› οΈ

Dependencies πŸš€

These are the core libraries required for the website to run in production:

  • lucide-react πŸ’Ž: A library of open-source, customizable SVG-based icons for React. It helps add vector icons to the UI.
  • octokit πŸ¦‘: A JavaScript library for interacting with GitHub’s API, useful for fetching data from GitHub repositories.
  • react βš›οΈ: The core React library to build user interfaces. React components handle rendering and interactivity.
  • react-dom 🌐: Provides methods to render React components in the browser and manage updates.
  • react-icons πŸ”—: A set of icons packaged as React components. It simplifies adding icons to the UI.
  • react-router-dom πŸ›£οΈ: A routing library for React, enabling navigation between pages and managing URL parameters.

DevDependencies 🧰

These are tools used during development to build, lint, and optimize the project:

  • @eslint/js πŸ§‘β€πŸ’»: Core ESLint library to identify and fix JavaScript code issues.
  • @types/react and @types/react-dom πŸ’¬: TypeScript definitions for React and ReactDOM, providing type safety and better development experience.
  • @vitejs/plugin-react βš™οΈ: Vite plugin for React, enabling features like React Fast Refresh and JSX transformation.
  • autoprefixer 🌐: PostCSS plugin that automatically adds vendor prefixes to CSS to ensure cross-browser compatibility.
  • eslint πŸ“: The linter for JavaScript/TypeScript to ensure consistent code quality.
  • eslint-plugin-react-hooks πŸͺ: An ESLint plugin to enforce rules of React Hooks usage.
  • eslint-plugin-react-refresh πŸ”„: Ensures that React Fast Refresh works correctly during development.
  • globals 🌍: Provides a list of global variables in different environments, such as browser and Node.js, for linting.
  • postcss 🧩: A tool to transform CSS with plugins, such as autoprefixing, minification, and more.
  • tailwindcss 🌈: A utility-first CSS framework to rapidly build custom and responsive designs.
  • typescript πŸ”€: A superset of JavaScript that adds static typing for more maintainable and reliable code.
  • typescript-eslint πŸ”: Enables ESLint to lint TypeScript code, enforcing consistent styling and error-free code.
  • vite ⚑: A fast, next-generation build tool optimized for modern web development.
  • lint-staged πŸš€: Runs linters on staged files before committing, ensuring that only clean code is committed.
  • storybook πŸ“š: A tool to develop and test UI components in isolation, ideal for building reusable UI elements.

Scripts πŸ“

These are various commands that help automate tasks in the development process:

  • dev πŸ”₯: Starts the development server (vite), enabling hot reloading and fast builds.
  • build πŸ—οΈ: Builds the project for production with optimized assets.
  • lint ⚠️: Runs ESLint to check for any code quality issues.
  • preview πŸ‘€: Previews the production build locally.
  • start πŸš€: Alias for pnpm dev, starts the development server.
  • test πŸ§ͺ: Runs linting and builds the app as a testing workflow.
  • fix πŸ”§: Automatically fixes any linting errors.
  • format πŸ–‹οΈ: Runs Prettier to format code according to style conventions.
  • clean 🧹: Cleans the dist folder, removes node_modules, and reinstalls dependencies.
  • deploy 🌐: Builds the project and deploys it to Netlify.
  • analyze πŸ“Š: Analyzes the build output for performance improvements.
  • check-types βœ…: Checks TypeScript types without emitting code.
  • generate-icons πŸ–ΌοΈ: Generates an SVG sprite from the icons in the src/assets/icons folder.
  • precommit βœ…: Runs lint-staged to lint files before committing.
  • storybook πŸ“š: Starts Storybook to develop and test components in isolation.
  • build-storybook πŸ—οΈ: Builds the Storybook for deployment.
  • check-deps πŸ”: Audits and updates dependencies.
  • postinstall 🧰: Runs additional commands after dependencies are installed (like starting Vite).

Repository Structure πŸ“‚

Here is the general structure of the repository:

snigdha-os.github.io/
.
β”œβ”€β”€ CODE_OF_CONDUCT.md
β”œβ”€β”€ config.sh
β”œβ”€β”€ CONTRIBUTING.md
β”œβ”€β”€ eslint.config.js
β”œβ”€β”€ index.html
β”œβ”€β”€ LICENSE
β”œβ”€β”€ package.json
β”œβ”€β”€ package-lock.json
β”œβ”€β”€ postcss.config.js
β”œβ”€β”€ public
β”‚   β”œβ”€β”€ 404.html
β”‚   β”œβ”€β”€ favicon.ico
β”‚   β”œβ”€β”€ favicon.svg
β”‚   β”œβ”€β”€ snigdhaos-logo.png
β”‚   └── snigdhaos-og.png
β”œβ”€β”€ push.sh
β”œβ”€β”€ readme.md
β”œβ”€β”€ src
β”‚   β”œβ”€β”€ App.tsx
β”‚   β”œβ”€β”€ components
β”‚   β”‚   β”œβ”€β”€ about
β”‚   β”‚   β”‚   β”œβ”€β”€ MissionSection.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ TeamSection.tsx
β”‚   β”‚   β”‚   └── Timeline.tsx
β”‚   β”‚   β”œβ”€β”€ developers
β”‚   β”‚   β”‚   β”œβ”€β”€ ContributorCard.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ ContributorStats.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ RepoCard.tsx
β”‚   β”‚   β”‚   └── TeamMemberCard.tsx
β”‚   β”‚   β”œβ”€β”€ donate
β”‚   β”‚   β”‚   β”œβ”€β”€ DonationTier.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ DonorWall.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ GithubSponsorButton.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ KeySponsors.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ SponsorshipStats.tsx
β”‚   β”‚   β”‚   └── SponsorshipTiers.tsx
β”‚   β”‚   β”œβ”€β”€ download
β”‚   β”‚   β”‚   β”œβ”€β”€ Checksum.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ DownloadButton.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ MirrorList.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ NetworkSpeed.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ SuggestedMirror.tsx
β”‚   β”‚   β”‚   └── SystemRequirements.tsx
β”‚   β”‚   β”œβ”€β”€ features
β”‚   β”‚   β”‚   β”œβ”€β”€ CategoryFilter.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ SearchBar.tsx
β”‚   β”‚   β”‚   └── ToolCard.tsx
β”‚   β”‚   β”œβ”€β”€ gallery
β”‚   β”‚   β”‚   β”œβ”€β”€ CategoryFilter.tsx
β”‚   β”‚   β”‚   └── GalleryImage.tsx
β”‚   β”‚   β”œβ”€β”€ home
β”‚   β”‚   β”‚   β”œβ”€β”€ ComparisonSection.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ FeatureCard.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ HeroSection.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ StatsSection.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ TestimonialCard.tsx
β”‚   β”‚   β”‚   └── ToolsShowcase.tsx
β”‚   β”‚   β”œβ”€β”€ layout
β”‚   β”‚   β”‚   β”œβ”€β”€ Footer
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ ContactSection.tsx
β”‚   β”‚   β”‚   β”‚   └── index.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Footer.tsx
β”‚   β”‚   β”‚   └── Navbar.tsx
β”‚   β”‚   └── ui
β”‚   β”‚       └── ErrorBoundary.tsx
β”‚   β”œβ”€β”€ data
β”‚   β”‚   β”œβ”€β”€ donations.ts
β”‚   β”‚   β”œβ”€β”€ download.ts
β”‚   β”‚   β”œβ”€β”€ footerNavigation.ts
β”‚   β”‚   β”œβ”€β”€ gallery.ts
β”‚   β”‚   β”œβ”€β”€ mirrors
β”‚   β”‚   β”‚   β”œβ”€β”€ africa.ts
β”‚   β”‚   β”‚   β”œβ”€β”€ americas.ts
β”‚   β”‚   β”‚   β”œβ”€β”€ asia.ts
β”‚   β”‚   β”‚   β”œβ”€β”€ europe.ts
β”‚   β”‚   β”‚   β”œβ”€β”€ index.ts
β”‚   β”‚   β”‚   └── oceania.ts
β”‚   β”‚   β”œβ”€β”€ mirrors.ts
β”‚   β”‚   β”œβ”€β”€ navigation.ts
β”‚   β”‚   β”œβ”€β”€ team.ts
β”‚   β”‚   β”œβ”€β”€ testimonials.ts
β”‚   β”‚   └── tools.ts
β”‚   β”œβ”€β”€ hooks
β”‚   β”‚   β”œβ”€β”€ useLocation.ts
β”‚   β”‚   └── useNetworkSpeed.ts
β”‚   β”œβ”€β”€ index.css
β”‚   β”œβ”€β”€ lib
β”‚   β”‚   β”œβ”€β”€ currency.ts
β”‚   β”‚   β”œβ”€β”€ github.ts
β”‚   β”‚   β”œβ”€β”€ location.ts
β”‚   β”‚   β”œβ”€β”€ network.ts
β”‚   β”‚   └── utils.ts
β”‚   β”œβ”€β”€ main.tsx
β”‚   β”œβ”€β”€ pages
β”‚   β”‚   β”œβ”€β”€ About.tsx
β”‚   β”‚   β”œβ”€β”€ Developers.tsx
β”‚   β”‚   β”œβ”€β”€ Donate.tsx
β”‚   β”‚   β”œβ”€β”€ Download.tsx
β”‚   β”‚   β”œβ”€β”€ Features.tsx
β”‚   β”‚   β”œβ”€β”€ Gallery.tsx
β”‚   β”‚   └── Home.tsx
β”‚   β”œβ”€β”€ routes.tsx
β”‚   β”œβ”€β”€ types
β”‚   β”‚   └── download.ts
β”‚   └── vite-env.d.ts
β”œβ”€β”€ tailwind.config.js
β”œβ”€β”€ tsconfig.app.json
β”œβ”€β”€ tsconfig.json
β”œβ”€β”€ tsconfig.node.json
└── vite.config.ts

Developers πŸ‘¨β€πŸ’»πŸ‘©β€πŸ’»

  • Eshanized - Lead Developer, Web Architect πŸ”§
  • RiO - Developer & Maintainer

If you would like to contribute or join the team, feel free to reach out! πŸ“¬

Development Guide πŸ“š

Prerequisites πŸ“₯

To get started with development, you need:

  • Node.js and pnpm installed on your local machine.
  • A modern web browser (Chrome, Firefox, etc.) for testing and debugging.
  • A code editor (VSCode, Sublime Text, etc.).
  • Familiarity with React.js, JavaScript, CSS, and Git.

Setting Up the Development Environment πŸ› οΈ

  1. Clone the repository:

    git clone https://github.com/Snigdha-OS/snigdha-os.github.io.git
    cd snigdha-os.github.io
  2. Install dependencies:

    pnpm install
  3. Run the development server:

    pnpm dev

    This will start the development server at http://localhost:5173. Any changes

made to the code will be reflected immediately. πŸ”„

Contribution Guidelines ✍️

  • Fork the repository and clone your fork locally.
  • Create a new branch for each feature or bug fix:
    git checkout -b feature-name
  • Make your changes, commit them with clear and descriptive commit messages.
  • Push your changes to your fork and create a pull request to the main branch.

Code Style and Best Practices πŸ’‘

  • Follow a consistent style guide for JavaScript and CSS.
  • Use meaningful variable names, and avoid long functions.
  • Comment complex logic to explain the reasoning behind it.
  • Use pnpm run lint to check for code style issues before committing.

Testing πŸ§ͺ

To test changes locally, run:

pnpm run test

This will run the Jest test suite for any components or functions that have been set up for testing.

Contributing 🀝

We welcome contributions from everyone! If you'd like to contribute to Snigdha OS Web, please follow these steps:

  1. Fork the repository.
  2. Clone your fork locally and create a new branch.
  3. Make your changes and test them.
  4. Create a pull request with a clear description of your changes.

If you have any ideas or suggestions, please feel free to open an issue or start a discussion. πŸ’¬

License πŸ“œ

This project is licensed under the MIT License. See the LICENSE file for more information.

Thanks for contributing to Snigdha OS Web! 🌟

About

πŸ•’ This repository contains the core source code and configuration files for the website. Feel free to modify, extend, and contribute to its development to improve functionality, add new features, and ensure the ongoing success of the project.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks