{"id":21184460,"url":"https://github.com/maruf-sarker/quickgen","last_synced_at":"2026-05-20T15:17:00.116Z","repository":{"id":263085014,"uuid":"889305951","full_name":"maruf-sarker/QuickGen","owner":"maruf-sarker","description":"QuickGen is a desktop app that lets users select tech stacks and generates project templates using socket-based communication.","archived":false,"fork":false,"pushed_at":"2024-11-16T04:59:12.000Z","size":125,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-21T12:46:21.343Z","etag":null,"topics":["java","socket-io","socket-programming"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maruf-sarker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-16T03:12:41.000Z","updated_at":"2024-11-16T04:59:16.000Z","dependencies_parsed_at":"2024-11-16T05:02:56.283Z","dependency_job_id":null,"html_url":"https://github.com/maruf-sarker/QuickGen","commit_stats":null,"previous_names":["maruf-sarker/quickgen"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maruf-sarker%2FQuickGen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maruf-sarker%2FQuickGen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maruf-sarker%2FQuickGen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maruf-sarker%2FQuickGen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maruf-sarker","download_url":"https://codeload.github.com/maruf-sarker/QuickGen/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243639408,"owners_count":20323505,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","socket-io","socket-programming"],"created_at":"2024-11-20T18:08:53.171Z","updated_at":"2026-05-20T15:17:00.072Z","avatar_url":"https://github.com/maruf-sarker.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# QuickGen - Project Generator with Socket Communication\n\n**QuickGen** is a desktop application that enables users to quickly create new projects based on selected technology stacks (e.g., React, Node.js) using socket-based communication between the frontend and backend. The tool generates the necessary folder structure and starter code for different tech stacks, making it easier to kickstart new development projects.\n\n---\n\n## Table of Contents\n\n1. [Features](#features)\n2. [Technologies Used](#technologies-used)\n3. [Project Structure](#project-structure)\n4. [How It Works](#how-it-works)\n5. [Installation](#installation)\n6. [Usage](#usage)\n7. [Future Improvements](#future-improvements)\n8. [License](#license)\n\n---\n\n## Features\n\n- **Tech Stack Selection**: Users can select from various tech stacks like **React (JS/TS)**, **Node.js MVC**, etc.\n- **Socket Communication**: Frontend communicates with the backend via socket programming for project creation.\n- **Dynamic Project Generation**: Based on the selected tech stack, the backend generates the appropriate folder structure and starter files.\n- **Customizable Directories**: Users can specify the directory where the project should be created.\n- **Error Handling**: The app handles errors during the creation process and provides feedback to the user.\n\n---\n\n## Technologies Used\n\n- **Frontend**:  \n  - **JavaFX** (for desktop GUI)\n  - **Java** (for application logic)\n\n- **Backend**:  \n  - **Java Socket Programming** (using `java.net` package)\n  - **Java I/O** (for creating project files and directories)\n\n---\n\n## Project Structure\n\n```\n/QuickGen\n    /src\n        /client\n            - ProjectGeneratorClient.java   # Frontend code (GUI and client-side logic)\n        /server\n            - ProjectGeneratorServer.java   # Backend code (socket server logic)\n    /assets\n        - Resources (e.g., icons, etc.)\n    /build\n        - Compiled .class files\n    /README.md\n```\n\n---\n\n## How It Works\n\n1. **Frontend (Client-side)**:\n   - Users interact with a JavaFX-based GUI where they can select the desired technology stack (React, Node.js, etc.) and specify a directory for the project.\n   - The frontend sends this information (selected stack and target directory) to the backend via a socket connection.\n\n2. **Backend (Server-side)**:\n   - The backend listens for incoming connections from the frontend.\n   - Upon receiving a request, the backend processes the selected stack and directory, creating the appropriate folder structure and starter files.\n   - The server sends a success or error message back to the frontend.\n\n3. **Project Generation**:\n   - Based on the stack chosen by the user, the backend creates the folder structure:\n     - For React (JS/TS), it generates folders like `src/`, and creates starter files such as `index.js` or `index.ts`.\n     - For Node.js MVC, it generates directories like `controllers/`, `models/`, `views/`, and creates a `server.js` file.\n   - Once the project is created, the user gets feedback in the form of a success or failure message.\n\n---\n\n## Installation\n\n1. **Clone the repository**:\n   ```\n   git clone https://github.com/maruf-sarker/QuickGen.git\n   cd QuickGen\n   ```\n\n2. **Compile the project**:\n   - Make sure you have **JDK** installed (Java 8 or higher).\n   - Compile the Java files:\n     ```\n     javac -d build src/**/*.java\n     ```\n\n3. **Run the backend (Server)**:\n   - Open a terminal and navigate to the `build` directory:\n     ```\n     java server.ProjectGeneratorServer\n     ```\n   - This will start the backend server on port `5000` (or any port you specify).\n\n4. **Run the frontend (Client)**:\n   - In a separate terminal, navigate to the `build` directory and run the client:\n     ```\n     java client.ProjectGeneratorClient\n     ```\n   - This will launch the GUI, allowing you to select the tech stack and target directory.\n\n---\n\n## Usage\n\n1. **Select the Technology Stack**:  \n   - Choose from available options (e.g., React with JS, React with TS, Node.js MVC) from the dropdown menu in the GUI.\n\n2. **Choose the Directory**:  \n   - Enter the path of the directory where you want the project to be created. If the directory does not exist, it will be created automatically.\n\n3. **Generate the Project**:  \n   - Click the **Generate Project** button to send the request to the backend.\n   - Wait for the backend to process the request and send a response.\n\n4. **Receive Feedback**:  \n   - Once the backend successfully creates the project, you’ll receive a success message.\n   - If there is an error (e.g., invalid directory, unsupported tech stack), an error message will be displayed.\n\n---\n\n## Future Improvements\n\n- **More Tech Stack Options**: Add more tech stacks (e.g., Vue.js, Angular, Django, etc.) for a broader selection of templates.\n- **Template Customization**: Allow users to customize the generated starter templates (e.g., choosing additional libraries or frameworks).\n- **Configuration Files**: Use JSON or YAML files to store the tech stack configurations, making it easier to update and extend the supported stacks.\n- **Error Logging**: Improve error handling with detailed logs, both on the server and client-side.\n- **Multi-threading**: Implement multi-threading on the backend to handle multiple client requests simultaneously.\n\n---\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaruf-sarker%2Fquickgen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaruf-sarker%2Fquickgen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaruf-sarker%2Fquickgen/lists"}