|
1 | 1 |
|
2 | 2 |
|
3 | | -# DevSetup |
| 3 | +# DevSetup 🛠️ |
4 | 4 |
|
5 | | -## Overview |
| 5 | +[](https://opensource.org/licenses/MIT) |
| 6 | +[](https://nextjs.org/) |
| 7 | +[](https://reactjs.org/) |
| 8 | +[](https://www.typescriptlang.org/) |
6 | 9 |
|
7 | | -DevSetup is a web-based tool that generates installation scripts for various tools and software based on the user's OS and preferred package manager. It allows developers to easily select tools they want to install, and it generates a script that can be run on their system (Windows, macOS, or Linux). |
| 10 | +> **A modern web-based tool for generating cross-platform developer environment setup scripts** |
8 | 11 |
|
9 | | -This project simplifies setting up a developer environment by providing a streamlined process to install essential tools using the appropriate package manager for the user's operating system. |
| 12 | +## 📋 Table of Contents |
10 | 13 |
|
11 | | -## Why We Need It |
| 14 | +- [Project Overview](#-project-overview) |
| 15 | +- [Why DevSetup?](#-why-devsetup) |
| 16 | +- [Quick Start](#-quick-start) |
| 17 | +- [Usage Guide](#-usage-guide) |
| 18 | +- [Features](#-features) |
| 19 | +- [Supported Platforms](#-supported-platforms) |
| 20 | +- [Project Structure](#-project-structure) |
| 21 | +- [Contributing](#-contributing) |
| 22 | +- [FAQ](#-faq) |
| 23 | +- [License](#-license) |
12 | 24 |
|
13 | | -Setting up a development environment involves installing multiple tools, such as IDEs, version control systems, package managers, etc. Each tool may require a different installation method depending on the operating system you're using. |
| 25 | +## 🎯 Project Overview |
14 | 26 |
|
15 | | -DevSetup allows developers to: |
| 27 | +DevSetup is a web-based tool that generates installation scripts for various developer tools and software based on your operating system and preferred package manager. It streamlines the process of setting up development environments by creating customized installation scripts that can be run on Windows, macOS, or Linux systems. |
16 | 28 |
|
17 | | -- Select their operating system (Windows, macOS, or Linux) |
18 | | -- Choose the package manager they prefer (e.g., Homebrew for macOS, Chocolatey for Windows, APT for Linux) |
19 | | -- Generate a custom installation script that installs the selected tools automatically |
| 29 | +### What DevSetup Does |
20 | 30 |
|
21 | | -With this tool, you can automate the setup of a developer environment, ensuring you don't miss any dependencies or tools. |
| 31 | +1. **Simplifies Tool Selection**: Browse categorized developer tools in an intuitive interface |
| 32 | +2. **Generates Custom Scripts**: Creates platform-specific installation scripts automatically |
| 33 | +3. **Supports Multiple Package Managers**: Works with Chocolatey, Winget, Scoop, Homebrew, APT, DNF, and Pacman |
| 34 | +4. **Ensures Consistency**: Helps teams maintain identical development environments across machines |
22 | 35 |
|
23 | | -## Features |
| 36 | +## 🤔 Why DevSetup? |
24 | 37 |
|
25 | | -- **Operating System Selector**: Choose between Windows, macOS, or Linux. |
26 | | -- **Package Manager Selector**: Select from various package managers (e.g., `choco`, `winget`, `scoop`, `homebrew`, `apt`). |
27 | | -- **Tool Selector**: Browse through different categories of developer tools, check the ones you want to install. |
28 | | -- **Script Generation**: Automatically generate a script (e.g., shell script for Linux/macOS or batch script for Windows) that installs the selected tools via the package manager. |
29 | | -- **Copy to Clipboard**: Copy the generated script to the clipboard for easy pasting into the terminal. |
30 | | -- **Download Script**: Download the generated script as a `.sh` file for Linux/macOS or `.bat` file for Windows. |
| 38 | +Setting up a development environment traditionally involves: |
| 39 | +- Manually installing dozens of tools one by one |
| 40 | +- Remembering different installation commands for each OS |
| 41 | +- Ensuring all team members have the same tools installed |
| 42 | +- Spending hours on repetitive setup tasks |
31 | 43 |
|
32 | | -## How It Works |
| 44 | +**DevSetup solves these problems by:** |
| 45 | +- **Automating the process**: Select tools once, generate scripts for any platform |
| 46 | +- **Ensuring consistency**: Same tools, same versions, across all team members |
| 47 | +- **Saving time**: What takes hours manually now takes minutes |
| 48 | +- **Reducing errors**: No more forgotten dependencies or missed installations |
33 | 49 |
|
34 | | -1. **Load Data**: The tool loads a JSON file containing a list of tools and their installation commands for each package manager. This data is structured into categories (e.g., IDEs, utilities, version control tools). |
35 | | -2. **OS & Package Manager Selection**: The user selects their operating system and package manager. |
36 | | -3. **Tool Selection**: The user checks off the tools they wish to install. Only tools compatible with the selected OS and package manager are available. |
37 | | -4. **Script Generation**: Once the tools are selected, a script is automatically generated with the appropriate installation commands. |
38 | | -5. **Action Buttons**: The user can copy the script to the clipboard or download it for later use. |
| 50 | +## 🚀 Quick Start |
39 | 51 |
|
40 | | -## Use Cases |
| 52 | +### Prerequisites |
41 | 53 |
|
42 | | -- **New Developer Setup**: Quickly set up a new development environment with all the necessary tools. |
43 | | -- **Consistency Across Machines**: Ensure all developers on a team have the same tools installed with identical setup scripts. |
44 | | -- **Automated Dev Environment Setup**: Automate the installation of development tools during CI/CD pipelines or on virtual machines. |
| 54 | +- **Node.js** 18.0 or higher |
| 55 | +- **npm** or **yarn** package manager |
| 56 | +- A modern web browser (Chrome, Firefox, Safari, Edge) |
45 | 57 |
|
46 | | -## How to Use |
| 58 | +### Installation |
47 | 59 |
|
48 | 60 | 1. **Clone the Repository** |
49 | 61 | - Clone this repository to your local machine. |
50 | 62 |
|
51 | 63 | ```bash |
52 | | - git clone https://github.com/yourusername/devsetup.git |
53 | | - cd devsetup |
| 64 | + git clone https://github.com/yourusername/DevSetup.git |
| 65 | + cd DevSetup |
54 | 66 | ``` |
55 | 67 |
|
56 | 68 | 2. **Install Dependencies** |
57 | | - |
58 | | - * Install the required dependencies for React and Next.js. |
59 | | - |
60 | 69 | ```bash |
61 | 70 | npm install |
62 | 71 | ``` |
63 | 72 |
|
64 | | -3. **Run the Application** |
65 | | - |
66 | | - * Start the development server to run the application locally. |
67 | | - |
| 73 | +3. **Start the Development Server** |
68 | 74 | ```bash |
69 | 75 | npm run dev |
70 | 76 | ``` |
71 | 77 |
|
72 | | - Visit [http://localhost:3000](http://localhost:3000) to interact with the tool. |
| 78 | +4. **Open Your Browser** |
| 79 | + Navigate to [http://localhost:3000](http://localhost:3000) |
| 80 | + |
| 81 | +### Production Build |
| 82 | + |
| 83 | +```bash |
| 84 | +npm run build |
| 85 | +npm start |
| 86 | +``` |
| 87 | + |
| 88 | +## 📖 Usage Guide |
| 89 | + |
| 90 | +### Step-by-Step Instructions |
| 91 | + |
| 92 | +1. **Select Your Operating System** |
| 93 | + - Choose between Windows, macOS, or Linux |
| 94 | + - The interface will automatically show compatible package managers |
| 95 | + |
| 96 | +2. **Choose Your Package Manager** |
| 97 | + - **Windows**: Chocolatey, Winget, or Scoop |
| 98 | + - **macOS**: Homebrew |
| 99 | + - **Linux**: APT, DNF, or Pacman |
| 100 | + |
| 101 | +3. **Browse and Select Tools** |
| 102 | + - Tools are organized by categories (IDEs, Version Control, Development Tools, etc.) |
| 103 | + - Check the boxes for tools you want to install |
| 104 | + - Only tools compatible with your selected OS and package manager will be available |
| 105 | + |
| 106 | +4. **Generate Your Script** |
| 107 | + - Click the "Generate Script" button |
| 108 | + - The script will appear in the output area with proper formatting |
| 109 | + |
| 110 | +5. **Use Your Script** |
| 111 | + - **Copy to Clipboard**: Click the copy button for immediate use |
| 112 | + - **Download**: Save as `.bat` (Windows) or `.sh` (macOS/Linux) file |
| 113 | + - **Run**: Execute the script in your terminal/command prompt |
| 114 | + |
| 115 | +### How It Works Behind the Scenes |
| 116 | + |
| 117 | +```mermaid |
| 118 | +graph LR |
| 119 | + A[Excel File] --> B[JSON Conversion] |
| 120 | + B --> C[Web Interface] |
| 121 | + C --> D[Tool Selection] |
| 122 | + D --> E[Script Generation] |
| 123 | + E --> F[Download/Copy] |
| 124 | +``` |
| 125 | + |
| 126 | +1. **Data Source**: Tool information is stored in `tools.xlsx` |
| 127 | +2. **Conversion**: `convertExcelToJson.js` converts Excel data to JSON |
| 128 | +3. **Loading**: Web app loads tool data from `tools.json` |
| 129 | +4. **Selection**: User selects OS, package manager, and tools |
| 130 | +5. **Generation**: Custom installation script is created |
| 131 | +6. **Output**: Script can be copied or downloaded |
| 132 | + |
| 133 | +## ✨ Features |
| 134 | + |
| 135 | +- **🎯 Cross-Platform Support**: Windows, macOS, and Linux |
| 136 | +- **📦 Multiple Package Managers**: 7 different package managers supported |
| 137 | +- **🗂️ Categorized Tools**: Organized by IDEs, Version Control, Development Tools, Utilities |
| 138 | +- **📜 Smart Script Generation**: Platform-specific scripts with proper formatting |
| 139 | +- **📋 One-Click Actions**: Copy to clipboard or download instantly |
| 140 | +- **🌙 Modern UI**: Clean, responsive interface with dark/light theme |
| 141 | +- **🔧 Easy Maintenance**: Add new tools via Excel file |
| 142 | +- **⚡ Fast & Offline**: No external dependencies, works offline after initial load |
| 143 | + |
| 144 | +## 🖥️ Supported Platforms |
| 145 | + |
| 146 | +| Platform | Package Managers | Script Format | Example Tools | |
| 147 | +|----------|------------------|---------------|---------------| |
| 148 | +| **Windows** | Chocolatey, Winget, Scoop | `.bat` | Git, VS Code, Node.js | |
| 149 | +| **macOS** | Homebrew | `.sh` | Git, VS Code, Docker | |
| 150 | +| **Linux** | APT, DNF, Pacman | `.sh` | Git, Vim, Python | |
| 151 | + |
| 152 | +### Tool Categories Available |
| 153 | + |
| 154 | +- **IDEs & Editors**: Visual Studio Code, IntelliJ IDEA, Sublime Text, Vim |
| 155 | +- **Version Control**: Git, GitHub CLI, GitKraken, Sourcetree |
| 156 | +- **Development Tools**: Node.js, Python, Docker, Postman, Insomnia |
| 157 | +- **Browsers**: Chrome, Firefox, Edge, Brave |
| 158 | +- **Utilities**: 7-Zip, Slack, Discord, Figma |
| 159 | +- **And many more...** |
| 160 | + |
| 161 | +## 📁 Project Structure |
| 162 | + |
| 163 | +``` |
| 164 | +DevSetup/ |
| 165 | +├── src/ |
| 166 | +│ ├── app/ |
| 167 | +│ │ ├── page.tsx # Main application component |
| 168 | +│ │ ├── layout.tsx # App layout and metadata |
| 169 | +│ │ └── globals.css # Global styles |
| 170 | +│ └── components/ # Reusable React components |
| 171 | +├── public/ |
| 172 | +│ ├── tools.xlsx # Excel database of tools |
| 173 | +│ ├── tools.json # Generated JSON data |
| 174 | +│ └── images/ # Tool icons and assets |
| 175 | +├── convertExcelToJson.js # Excel to JSON conversion script |
| 176 | +├── CONTRIBUTING.md # Contribution guidelines |
| 177 | +├── PROJECT_STRUCTURE.md # Detailed project structure |
| 178 | +├── README.md # This file |
| 179 | +└── package.json # Dependencies and scripts |
| 180 | +``` |
| 181 | + |
| 182 | +### Key Files & Scripts |
| 183 | + |
| 184 | +- **`tools.xlsx`**: Master database containing all tool information |
| 185 | +- **`convertExcelToJson.js`**: Converts Excel data to JSON format |
| 186 | +- **`tools.json`**: Generated JSON file consumed by the web application |
| 187 | +- **`page.tsx`**: Main React component with application logic |
| 188 | + |
| 189 | +### Available Scripts |
| 190 | + |
| 191 | +```bash |
| 192 | +npm run dev # Start development server |
| 193 | +npm run build # Build for production |
| 194 | +npm start # Start production server |
| 195 | +npm run lint # Run ESLint |
| 196 | +``` |
| 197 | + |
| 198 | +## 🤝 Contributing |
| 199 | + |
| 200 | +We welcome contributions! Here are ways you can help: |
| 201 | + |
| 202 | +- **Add new tools** to the database |
| 203 | +- **Improve the user interface** |
| 204 | +- **Fix bugs** and issues |
| 205 | +- **Enhance documentation** |
| 206 | +- **Suggest new features** |
73 | 207 |
|
74 | | -4. **Select Tools** |
| 208 | +### Quick Start for Contributors |
75 | 209 |
|
76 | | - * Select your operating system (Windows, macOS, or Linux). |
77 | | - * Choose the package manager (e.g., `choco`, `winget`, `apt`, etc.). |
78 | | - * Check the boxes for the tools you wish to install. |
79 | | - * Click "Generate Script" to create your installation script. |
| 210 | +1. Fork the repository |
| 211 | +2. Create a feature branch: `git checkout -b feature/new-tool` |
| 212 | +3. Make your changes |
| 213 | +4. Test thoroughly |
| 214 | +5. Submit a pull request |
80 | 215 |
|
81 | | -5. **Copy or Download the Script** |
| 216 | +**For detailed instructions**, see our [Contributing Guide](CONTRIBUTING.md). |
82 | 217 |
|
83 | | - * Copy the script to the clipboard or download it as a `.sh` or `.bat` file. |
| 218 | +### Adding New Tools |
| 219 | + |
| 220 | +1. Open `public/tools.xlsx` |
| 221 | +2. Add tool information in a new row |
| 222 | +3. Run: `node convertExcelToJson.js` |
| 223 | +4. Test the changes locally |
| 224 | +5. Submit a pull request |
| 225 | + |
| 226 | +## ❓ FAQ |
| 227 | + |
| 228 | +### General Questions |
| 229 | + |
| 230 | +**Q: Can I use DevSetup offline?** |
| 231 | +A: Yes! Once loaded, the application works completely offline. |
| 232 | + |
| 233 | +**Q: How do I add a tool that's not listed?** |
| 234 | +A: See our [Contributing Guide](CONTRIBUTING.md) for step-by-step instructions. |
| 235 | + |
| 236 | +**Q: Can I modify the generated scripts?** |
| 237 | +A: Absolutely! Copy the script and customize it for your specific needs. |
| 238 | + |
| 239 | +**Q: Does DevSetup work on all operating systems?** |
| 240 | +A: The web application works on any OS with a modern browser. The generated scripts are platform-specific. |
| 241 | + |
| 242 | +**Q: Can I host DevSetup on my own server?** |
| 243 | +A: Yes! It's a static Next.js application that can be deployed anywhere. |
| 244 | + |
| 245 | + |
| 246 | +## 📄 License |
| 247 | + |
| 248 | +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. |
| 249 | + |
| 250 | +### Attribution |
| 251 | + |
| 252 | +- Built with [Next.js](https://nextjs.org/) and [React](https://reactjs.org/) |
| 253 | +- Icons provided by [React Icons](https://react-icons.github.io/react-icons/) |
| 254 | +- Styled with [TailwindCSS](https://tailwindcss.com/) |
84 | 255 |
|
85 | 256 | --- |
86 | | -## Contributing |
87 | 257 |
|
88 | | -We'd love to have your help! Please see the [Contributing Guide](CONTRIBUTING.md) for instructions on how to add new tools or contribute to the project. |
| 258 | +**Made with ❤️ for the developer community** |
| 259 | + |
| 260 | +[Report Bug](https://github.com/CodeCompasss/DevSetup/issues) · [Request Feature](https://github.com/CodeCompasss/DevSetup/issues) · [Contribute](CONTRIBUTING.md) |
| 261 | + |
| 262 | +--- |
89 | 263 |
|
| 264 | +## 🚀 What's Next? |
90 | 265 |
|
91 | | -## Conclusion |
| 266 | +DevSetup continues to evolve! Here's what we're working on: |
92 | 267 |
|
93 | | -DevSetup is a simple yet powerful tool that can save time when setting up a new development environment. By automating the installation of essential tools, it ensures consistency and efficiency across multiple systems. With the ability to add new tools via an Excel file, this project can easily scale and accommodate more software options. |
| 268 | +- **More tools**: Expanding our database with community contributions |
| 269 | +- **Better UI**: Enhanced user experience and accessibility |
| 270 | +- **Advanced features**: Tool version selection, custom commands |
| 271 | +- **Integration**: API for CI/CD pipelines and automation tools |
94 | 272 |
|
95 | | ---- |
| 273 | +Join our community and help shape the future of developer environment setup! |
0 commit comments