# Snigdha OS Web Dev ππ»
Welcome to the **Snigdha OS Web Dev** repository! π This repository contains the source code, components, and resources used for building and maintaining the official website for **Snigdha OS**. π
[](https://app.netlify.com/sites/snigdhaos/deploys)
## Table of Contents π
- [Overview](#overview) π
- [Features](#features) β¨
- [Technologies Used](#technologies-used) βοΈ
- [Repository Structure](#repository-structure) π
- [Developers](#developers) π¨βπ»π©βπ»
- [Development Guide](#development-guide) π οΈ
- [Contributing](#contributing) π€
- [License](#license) π
## Overview π
The **Snigdha OS Web Dev** repository powers the official website for the next **Snigdha OS**. 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 minimalist philosophy of Snigdha OS. π₯οΈ
## Features β¨
- π± **Responsive Design**: Works seamlessly across devices and screen sizes.
- π **User Registration & Authentication**: Integrated with the Snigdha OS user system.
- π **Region-based Downloads**: Select regional mirrors for faster downloads.
- π¨ **Customizable UI**: Built for flexibility and easy theming.
- π **SEO Optimization**: Ensures better discoverability on search engines.
## Technologies Used βοΈ
This project leverages modern technologies to deliver an efficient and scalable experience:
- βοΈ **React.js**: For building dynamic user interfaces.
- π’ **Node.js**: A runtime environment for server-side JavaScript.
- π **Express.js**: Minimal web framework for backend API routes.
- ποΈ **Redux**: State management for predictable application behavior.
- π¨ **CSS3 & Sass**: Styling with modern techniques like Flexbox and Grid.
- π¦ **Webpack**: Bundling JavaScript and assets for optimized performance.
- β
**Jest**: Testing framework for unit and integration tests.
- π οΈ **ESLint**: For consistent and error-free JavaScript code.
## Repository Structure π
The repository is organized for clarity and modularity:
```plaintext
snigdhaos-web-dev/
βββ src/ # Main source code
β βββ components/ # Reusable components (Header, Footer, Forms)
β βββ pages/ # Website pages (Home, About, Download)
β βββ styles/ # Global and component-specific styles
β βββ utils/ # Utility functions and helpers
β βββ App.js # Root React component
βββ public/ # Static assets (images, icons, fonts)
βββ tests/ # Unit and integration tests
βββ package.json # Project dependencies and scripts
βββ pnpm-lock.yaml # Lockfile for pnpm dependencies
βββ README.md # This README file
βββ .eslintrc.js # ESLint configuration
βββ .gitignore # Files to ignore in Git
βββ LICENSE # License file
```
### Key Folders π
- **`src/components/`**: Modular, reusable UI components like navigation bars and forms.
- **`src/pages/`**: Individual pages of the website, such as Home, About, and Download.
- **`src/styles/`**: Stylesheets for consistent design across the website.
- **`public/`**: Static files served directly without processing.
## Developers π¨βπ»π©βπ»
Meet the amazing contributors behind Snigdha OS Web Dev:
- **[Eshanized](https://github.com/eshanized/)** - Lead Developer, Web Architect π
Weβre always looking for passionate developers to join the team! π
## Development Guide π οΈ
### Prerequisites β‘
To start working on the project, you need:
- **Node.js** and **pnpm** installed on your machine.
- A modern browser for testing (e.g., Chrome, Firefox).
- A code editor like VSCode for efficient development.
- Familiarity with React.js, JavaScript, and Git.
### Setting Up the Development Environment π
1. Clone the repository:
```bash
git clone https://github.com/Snigdha-OS/snigdhaos-web-dev.git
cd snigdhaos-web-dev
```
2. Install dependencies:
```bash
pnpm install
```
3. Run the development server:
```bash
pnpm start
```
The server will start at `http://localhost:5173`. Changes to the code will auto-refresh in your browser.
## Contributing π€
We welcome contributions! Hereβs how you can contribute:
1. **Fork the repository**:
Click the βForkβ button at the top of the page to create your copy.
2. **Create a branch** for your feature or bug fix:
```bash
git checkout -b feature-name
```
3. **Make your changes**:
Write clean and well-documented code.
4. **Commit your changes**:
```bash
git commit -m "Add: Feature description"
```
5. **Push to your fork** and submit a pull request:
```bash
git push origin feature-name
```
## License π
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
π Thanks for being part of the Snigdha OS Web Dev journey! π