Skip to content

Commit 65c7d1b

Browse files
committed
refactor(website):using anitgravity
1 parent c43a283 commit 65c7d1b

21 files changed

+989
-385
lines changed

.github/FUNDING.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
github:shadil-rayyan

convertExcelToJson.js

Lines changed: 35 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,42 +2,69 @@ import XLSX from 'xlsx';
22
import fs from 'fs';
33

44
const convertExcelToJson = () => {
5-
const workbook = XLSX.readFile('./public/tools.xlsx'); // Replace with your Excel file path
6-
const sheetName = workbook.SheetNames[0]; // Assuming first sheet contains the data
5+
const workbook = XLSX.readFile('./public/tools.xlsx');
6+
const sheetName = workbook.SheetNames[0];
77
const worksheet = workbook.Sheets[sheetName];
88

9-
// Define the structure of each row
109
const jsonData = XLSX.utils.sheet_to_json(worksheet, { defval: "" });
1110

1211
const categoriesMap = {};
12+
const toolsDir = './public/tools';
13+
14+
// Ensure tools directory exists
15+
if (!fs.existsSync(toolsDir)){
16+
fs.mkdirSync(toolsDir, { recursive: true });
17+
}
1318

1419
jsonData.forEach((row) => {
1520
const category = row.category || "Uncategorized";
21+
const categoryId = category.toLowerCase().replace(/[^a-z0-9]/g, '_');
1622

1723
if (!categoriesMap[category]) {
18-
categoriesMap[category] = { category, tools: [] };
24+
categoriesMap[category] = {
25+
id: categoryId,
26+
category,
27+
tools: []
28+
};
1929
}
2030

2131
const install = {};
22-
23-
// Map the package managers and installation commands dynamically
2432
['choco', 'winget', 'scoop', 'apt', 'dnf', 'pacman', 'homebrew'].forEach(pkg => {
2533
if (row[pkg]) {
2634
install[pkg] = row[pkg];
2735
}
2836
});
2937

3038
categoriesMap[category].tools.push({
39+
id: row.name.toLowerCase().replace(/[^a-z0-9]/g, '_'),
3140
name: row.name,
3241
iconsrc: row.iconsrc,
3342
install,
3443
});
3544
});
3645

37-
// Write the JSON data to a file
46+
const categoryList = [];
47+
48+
// Write individual category files and build manifest
49+
Object.values(categoriesMap).forEach(categoryData => {
50+
const fileName = `${categoryData.id}.json`;
51+
fs.writeFileSync(`${toolsDir}/${fileName}`, JSON.stringify(categoryData, null, 2));
52+
53+
categoryList.push({
54+
id: categoryData.id,
55+
name: categoryData.category,
56+
file: `/tools/${fileName}`,
57+
count: categoryData.tools.length
58+
});
59+
});
60+
61+
// Write manifest file
62+
fs.writeFileSync('./public/tools/manifest.json', JSON.stringify(categoryList, null, 2));
63+
64+
// Keep tools.json for backward compatibility (optional but recommended for now)
3865
fs.writeFileSync('./public/tools.json', JSON.stringify(Object.values(categoriesMap), null, 2));
3966

40-
console.log("Excel file has been converted to JSON.");
67+
console.log(`Successfully sharded ${jsonData.length} tools into ${categoryList.length} categories.`);
4168
};
4269

4370
convertExcelToJson();

doc/DeveloperGuide.md

Lines changed: 0 additions & 230 deletions
This file was deleted.

doc/ROADMAP.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# 🗺️ DevSetup Project Roadmap
2+
3+
This roadmap outlines the evolution of **DevSetup** from a script generator to a comprehensive developer environment manager.
4+
5+
## 🏁 Phase 1: Foundation (Current)
6+
- [x] Basic UI with React/Next.js.
7+
- [x] Excel-to-JSON database management.
8+
- [x] Support for 7+ package managers (Windows, Mac, Linux).
9+
- [x] Basic script generation and copy-to-clipboard.
10+
11+
## 🚀 Phase 2: Enhanced User Experience (Next)
12+
- [ ] **Smart Detection**: Auto-detect OS and architecture (x86 vs ARM).
13+
- [ ] **Live Search**: Instant tool filtering with fuzzy search.
14+
- [ ] **Role Presets**: Pre-defined stacks (Full-stack, Data Science, DevOps).
15+
- [ ] **Dark Mode Toggle**: Persistent theme switching.
16+
- [ ] **Mobile Optimization**: Better layout for browsing tools on the go.
17+
18+
## 🛠️ Phase 3: Advanced Configuration
19+
- [ ] **VS Code Extensions**: Select extensions to install via CLI.
20+
- [ ] **Dotfiles Support**: Integration with git-based dotfiles repositories.
21+
- [ ] **Version Options**: Ability to choose specific tool versions where supported.
22+
- [ ] **Custom Commands**: Add personal shell aliases or custom script blocks to the output.
23+
24+
## 🌐 Phase 4: Integration & Community
25+
- [ ] **Public API**: Allow others to consume the tool database.
26+
- [ ] **CLI Tool**: A `devsetup` command-line tool to run configurations directly.
27+
- [ ] **User Accounts**: Save and manage multiple setup profiles.
28+
- [ ] **Community Verification**: Badge system for stable/working commands.
29+
- [ ] **Plugin System**: Allow users to contribute "Setup Modules" (e.g., "Post-Install Ubuntu Optimization").
30+
31+
---
32+
**Last Updated**: January 2026
33+
*Join the discussion in GitHub Issues to suggest new features!*

0 commit comments

Comments
 (0)