Teste Task

import os import zipfile # Diretório base do projeto base_dir = "/mnt/data/click-tasks" frontend_dir = os.path.join(base_dir, "frontend") backend_dir = os.path.join(base_dir, "backend") # Estrutura de diretórios e arquivos para incluir structure = { "frontend/public/index.html": """ CLICK TASKs
""", "frontend/src/index.css": """@tailwind base; @tailwind components; @tailwind utilities; """, "frontend/src/index.js": """import React from 'react'; import ReactDOM from 'react-dom/client'; import App from './App'; import './index.css'; const root = ReactDOM.createRoot(document.getElementById('root')); root.render(); """, "frontend/src/App.jsx": """import React from 'react'; import { BrowserRouter as Router } from 'react-router-dom'; import RoutesApp from './routes'; function App() { return ( ); } export default App; """, "frontend/src/routes.jsx": """import React from 'react'; import { Routes, Route } from 'react-router-dom'; import Login from './components/Login'; import Register from './components/Register'; import ForgotPassword from './components/ForgotPassword'; import Info from './components/Info'; const RoutesApp = () => ( } /> } /> } /> } /> ); export default RoutesApp; """, "frontend/src/components/Login.jsx": "/* Login.jsx simplificado para exemplo */", "frontend/src/components/Register.jsx": "/* Register.jsx simplificado para exemplo */", "frontend/src/components/ForgotPassword.jsx": "/* ForgotPassword.jsx simplificado para exemplo */", "frontend/src/components/Info.jsx": "/* Info.jsx simplificado para exemplo */", "frontend/src/services/api.js": """import axios from 'axios'; const api = axios.create({ baseURL: "http://localhost:5000/api", }); export default api; """, "frontend/package.json": """{ "name": "click-tasks-frontend", "version": "1.0.0", "private": true, "dependencies": { "axios": "^1.3.4", "react": "^18.2.0", "react-dom": "^18.2.0", "react-router-dom": "^6.8.0" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build" } } """, "frontend/tailwind.config.js": """module.exports = { content: [ "./src/**/*.{js,jsx,ts,tsx}", "./public/index.html" ], theme: { extend: {}, }, plugins: [], }; """, "frontend/postcss.config.js": """module.exports = { plugins: { tailwindcss: {}, autoprefixer: {}, }, }; """, "backend/app.js": "/* app.js simplificado para exemplo */", "backend/package.json": """{ "name": "click-tasks-backend", "version": "1.0.0", "main": "app.js", "scripts": { "start": "node app.js" }, "dependencies": { "bcrypt": "^5.1.0", "cors": "^2.8.5", "dotenv": "^16.0.3", "express": "^4.18.2", "jsonwebtoken": "^9.0.0", "mongoose": "^7.0.3" } } """, "LICENSE.md": "# Apache License 2.0\n\n[...Texto completo aqui...]", "README.md": "# CLICK TASKs\n\nProjeto fullstack com React + Node.js" } # Criar os arquivos e diretórios for path, content in structure.items(): full_path = os.path.join(base_dir, path) os.makedirs(os.path.dirname(full_path), exist_ok=True) with open(full_path, "w") as f: f.write(content) # Compactar em ZIP zip_path = "/mnt/data/click-tasks.zip" with zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) as zipf: for root, _, files in os.walk(base_dir): for file in files: abs_file = os.path.join(root, file) rel_path = os.path.relpath(abs_file, base_dir) zipf.write(abs_file, rel_path) zip_path

Comentários

Postagens mais visitadas