Skip to content

Commit a7bd442

Browse files
committed
inital working commit
1 parent d93ef7e commit a7bd442

221 files changed

Lines changed: 18505 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/nextjs.yml

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# Sample workflow for building and deploying a Next.js site to GitHub Pages
2+
#
3+
# To get started with Next.js see: https://nextjs.org/docs/getting-started
4+
#
5+
name: Deploy Next.js site to Pages
6+
7+
on:
8+
# Runs on pushes targeting the default branch
9+
push:
10+
branches: ["main"]
11+
12+
# Allows you to run this workflow manually from the Actions tab
13+
workflow_dispatch:
14+
15+
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
16+
permissions:
17+
contents: read
18+
pages: write
19+
id-token: write
20+
21+
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
22+
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
23+
concurrency:
24+
group: "pages"
25+
cancel-in-progress: false
26+
27+
jobs:
28+
# Build job
29+
build:
30+
runs-on: ubuntu-latest
31+
steps:
32+
- name: Checkout
33+
uses: actions/checkout@v4
34+
- name: Detect package manager
35+
id: detect-package-manager
36+
run: |
37+
if [ -f "${{ github.workspace }}/yarn.lock" ]; then
38+
echo "manager=yarn" >> $GITHUB_OUTPUT
39+
echo "command=install" >> $GITHUB_OUTPUT
40+
echo "runner=yarn" >> $GITHUB_OUTPUT
41+
exit 0
42+
elif [ -f "${{ github.workspace }}/package.json" ]; then
43+
echo "manager=npm" >> $GITHUB_OUTPUT
44+
echo "command=ci" >> $GITHUB_OUTPUT
45+
echo "runner=npx --no-install" >> $GITHUB_OUTPUT
46+
exit 0
47+
else
48+
echo "Unable to determine package manager"
49+
exit 1
50+
fi
51+
- name: Setup Node
52+
uses: actions/setup-node@v4
53+
with:
54+
node-version: "20"
55+
cache: ${{ steps.detect-package-manager.outputs.manager }}
56+
- name: Setup Pages
57+
uses: actions/configure-pages@v5
58+
with:
59+
# Automatically inject basePath in your Next.js configuration file and disable
60+
# server side image optimization (https://nextjs.org/docs/api-reference/next/image#unoptimized).
61+
#
62+
# You may remove this line if you want to manage the configuration yourself.
63+
static_site_generator: next
64+
- name: Restore cache
65+
uses: actions/cache@v4
66+
with:
67+
path: |
68+
.next/cache
69+
# Generate a new cache whenever packages or source files change.
70+
key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }}
71+
# If source files changed but packages didn't, rebuild from a prior cache.
72+
restore-keys: |
73+
${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}-
74+
- name: Install dependencies
75+
run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }}
76+
- name: Build with Next.js
77+
run: ${{ steps.detect-package-manager.outputs.runner }} next build
78+
- name: Upload artifact
79+
uses: actions/upload-pages-artifact@v3
80+
with:
81+
path: ./out
82+
83+
# Deployment job
84+
deploy:
85+
environment:
86+
name: github-pages
87+
url: ${{ steps.deployment.outputs.page_url }}
88+
runs-on: ubuntu-latest
89+
needs: build
90+
steps:
91+
- name: Deploy to GitHub Pages
92+
id: deployment
93+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2+
3+
# dependencies
4+
/node_modules
5+
/.pnp
6+
.pnp.*
7+
.yarn/*
8+
!.yarn/patches
9+
!.yarn/plugins
10+
!.yarn/releases
11+
!.yarn/versions
12+
13+
# testing
14+
/coverage
15+
16+
# next.js
17+
/.next/
18+
/out/
19+
20+
# production
21+
/build
22+
23+
# misc
24+
.DS_Store
25+
*.pem
26+
27+
# debug
28+
npm-debug.log*
29+
yarn-debug.log*
30+
yarn-error.log*
31+
.pnpm-debug.log*
32+
33+
# env files (can opt-in for committing if needed)
34+
.env*
35+
36+
# vercel
37+
.vercel
38+
39+
# typescript
40+
*.tsbuildinfo
41+
next-env.d.ts

CONTRIBUTING.md

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
2+
# Contributing to DevSetup
3+
4+
Thank you for considering contributing to the **DevSetup** project! We're excited to have you help make this tool even more useful. Below are instructions for contributing, including adding new tools to the system.
5+
6+
## Table of Contents
7+
8+
- [Contributing to DevSetup](#contributing-to-devsetup)
9+
- [Table of Contents](#table-of-contents)
10+
- [How to Add New Tools](#how-to-add-new-tools)
11+
- [Step 1: Add Tools to the Excel File](#step-1-add-tools-to-the-excel-file)
12+
- [Step 2: Convert Excel to JSON](#step-2-convert-excel-to-json)
13+
- [Step 3: Test the Updates](#step-3-test-the-updates)
14+
- [How to Contribute](#how-to-contribute)
15+
- [Branch Information](#branch-information)
16+
- [Troubleshooting](#troubleshooting)
17+
- [Tools Not Appearing](#tools-not-appearing)
18+
- [JSON File Not Loading](#json-file-not-loading)
19+
- [Other Issues](#other-issues)
20+
- [Thank You!](#thank-you)
21+
- [License](#license)
22+
23+
## How to Add New Tools
24+
25+
To add new tools to the system, follow these steps:
26+
27+
### Step 1: Add Tools to the Excel File
28+
29+
1. Open the `tools.xlsx` file, which is located in the root folder of the repository.
30+
2. Add a new row for each tool you want to include. Ensure you fill in the following columns:
31+
- `category`: The category of the tool (e.g., "IDE", "Version Control", etc.).
32+
- `name`: The name of the tool (e.g., "Visual Studio Code", "Git").
33+
- `iconsrc`: The URL of the icon for the tool (used in the UI).
34+
- Installation commands for each package manager:
35+
- `choco` (Windows)
36+
- `winget` (Windows)
37+
- `scoop` (Windows)
38+
- `apt` (Linux)
39+
- `dnf` (Linux)
40+
- `pacman` (Linux)
41+
- `homebrew` (macOS)
42+
43+
**Example:**
44+
45+
| category | name | iconsrc | choco | winget | scoop | apt | dnf | pacman | homebrew |
46+
|------------|----------------------|------------------------------|----------------------|--------------------|-------------------|-------------|--------------|-----------|--------------|
47+
| IDE | Visual Studio Code | https://example.com/vscode.png| vscode | vscode | vscode | code | | | |
48+
| Versioning | Git | https://example.com/git.png | git | git | git | git | git | git | |
49+
50+
### Step 2: Convert Excel to JSON
51+
52+
Once you have added the new tools to the `tools.xlsx` file, you need to convert it to a `tools.json` file. Follow these steps:
53+
54+
1. Open the `convertExcelToJson.js` script (located in the root folder).
55+
2. Run the script using Node.js:
56+
57+
```bash
58+
node convertExcelToJson.js
59+
```
60+
61+
This will convert the data from the Excel sheet to a JSON format and output it as `tools.json`. The `tools.json` file is used by the app to generate the installation scripts.
62+
### Step 3: Test the Updates
63+
64+
Once the new tools are added and the JSON file is updated, follow these steps:
65+
66+
1. **Run the app locally** to ensure the new tools are reflected in the UI.
67+
2. **Verify the new tools** appear correctly, and the installation commands for each package manager are functional.
68+
3. If everything looks good, you’re all set! The new tools will be available for users to select and include in their installation scripts.
69+
70+
## How to Contribute
71+
72+
We welcome contributions from the community! Here's how you can contribute:
73+
74+
1. **Fork the repository** to your GitHub account.
75+
76+
2. **Clone the forked repository** to your local machine.
77+
78+
```bash
79+
git clone https://github.com/yourusername/devsetup.git
80+
cd devsetup
81+
```
82+
83+
3. **Create a new branch** for your feature or bug fix. Make sure you are working in the `dev` branch.
84+
85+
```bash
86+
git checkout -b feature/add-new-tool
87+
```
88+
89+
4. **Make your changes**, whether it's adding new tools, fixing bugs, or improving the UI.
90+
91+
5. **Commit your changes** with a clear message.
92+
93+
```bash
94+
git add .
95+
git commit -m "Add Visual Studio Code tool to Excel"
96+
```
97+
98+
6. **Push your branch** to your forked repository.
99+
100+
```bash
101+
git push origin feature/add-new-tool
102+
```
103+
104+
7. **Open a Pull Request (PR)** to the `dev` branch of the main repository. Include a detailed description of the changes you made.
105+
106+
## Branch Information
107+
108+
* All development should be done on the `dev` branch. Once your changes are tested and reviewed, they can be merged into the `main` branch.
109+
110+
* **Don't forget** to sync your branch with the latest updates from the main repository to avoid merge conflicts.
111+
112+
## Troubleshooting
113+
114+
### Tools Not Appearing
115+
116+
If you don’t see the new tools after adding them, ensure that you:
117+
118+
* Correctly added the tools to the `tools.xlsx` file.
119+
* Ran the `convertExcelToJson.js` script to regenerate the `tools.json` file.
120+
121+
### JSON File Not Loading
122+
123+
If the app fails to load tools, check the following:
124+
125+
* Ensure the `tools.json` file is in the correct location and accessible.
126+
* Check the browser console for any errors that may point to issues with loading the JSON file.
127+
128+
### Other Issues
129+
130+
Feel free to open an issue in the repository if you encounter any bugs or need assistance.
131+
132+
## Thank You!
133+
134+
We appreciate your contributions! Your work helps make this tool more useful for developers everywhere. If you have any questions, feel free to reach out.
135+
136+
---
137+
138+
## License
139+
140+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
141+

LICENSE

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
Copyright (c) 2025 Shadil Am. All rights reserved.
2+
3+
1. DEFINITIONS
4+
“Repository” means this source code and its associated files.
5+
“You” means any individual or entity that forks, clones, copies, views, or otherwise accesses the Repository.
6+
7+
2. LICENSE AND RESTRICTIONS
8+
This Repository is proprietary and confidential. You may *not* use, copy, modify, distribute, display, execute, publish, sublicense, or sell it in whole or in part without express prior written permission from Shadil Am.
9+
*Exception:* You may fork the Repository and submit pull requests on GitHub solely for the purpose of contributing code back. Such usage is strictly limited to GitHub’s pull-request system and does not grant any other rights.
10+
11+
3. NO IMPLIED LICENSE
12+
No license—express, implied, by estoppel, or otherwise—to any intellectual property is granted except as expressly stated above.
13+
14+
4. TERMINATION
15+
Any use beyond the limited exception in Section 2 will immediately terminate any rights you may have under this Agreement.
16+
17+
5. DISCLAIMER OF WARRANTIES
18+
This Repository is provided “AS IS,” without any warranty, express or implied. To the maximum extent permitted by applicable law, Shadil Am disclaims all warranties.
19+
20+
6. LIMITATION OF LIABILITY
21+
Shadil Am will not be liable for any special, indirect, incidental, or consequential damages arising out of or in connection with this Repository.
22+
23+
7. GOVERNING LAW & JURISDICTION
24+
This Agreement is governed by and construed under the laws of the State of Kerala, Republic of India, without regard to its conflict-of-law rules. You irrevocably submit to the exclusive jurisdiction of the courts located in Kochi, Kerala, India, for any dispute arising under or relating to this Agreement.
25+
26+
8. CONTACT
27+
Permission requests or inquiries should be sent to *shadilrayyan2@gmail.com*.

0 commit comments

Comments
 (0)