YProjects Manager
Introdução
O YProjects Manager, ou Gerenciador de YProjetos, é uma ferramenta inspirada na npm, ela cria projetos web e projetos python (voltados para uso e execução em terminal), eu gosto da ypg por que ela tem uma capacidade de melhoria muito alta, tem inclusão de algumas libs próprias criadas pelo desenvolvedor para uso pessoal, porém ele já publicou essas libs no pypi para uso aberto
Funcionalidades
Por enquanto, o(a) ypg (não sei o pronome da ferramenta) consegue criar projetos web simples com a seguinte estrutura:
mindmap
Projeto
server.py
README.md
index.html
Diretório assets
tailwind.config.js
app.tsx
global.css
e projetos python voltados a uso em terminal
(segundo o criador do ypg, essa opção servia para desenvolvimentos de ferramentas para hacking e atividades não tão legalizadas)
tais projetos em python podem ser um pouco mais complexos, pois contavam com uma série de ferramentas pré-prontas que o dev chamou de prmTools (pre-made tools).
A estrutura de um projeto py usando a ypg se parece com isso:
mindmap
Projeto
main.py
README.md
Diretório misc
loading.py
tools.py
update.py
Usos
Como já mencionado anteriormente, o YProjects Manager poderia ser usado para criar projetos web que seram melhor detalhados abaixo, e projetos python que também serão explicados com maior profundidade abaixo
Web
Os projetos web seguem uma estrutura não muito complexa, eles ultilizam tailwindCSS como framework css e react como framework TS (o criador decidiu usar TypeScript ao inves de JavaScript porque ele não gostava de JS)
A seguir deixarei o código que vem por padrão no projeto
index.html
<!DOCTYPE html>
<html>
<head>
<title>YProjs Generator</title>
<link rel="stylesheet" href="assets/global.css">
<script src="https://cdn.tailwindcss.com"></script>
<script src="assets/tailwind.config.js"></script>
</head>
<body class="bg-zinc-950">
</body>
</html>
README.md
# YPG
> YProjects Gerenciator
## How to use
clone the repo or download the project zip archive
go to the directory where ypg has been install
in windows and linux: `python ypg.py --[project-type] -n [name]`
the final project will appear in the `/output` directory
## Web Mode
to create the web project, run ```python ypg.py -w -n [name]``` or ```python ypg.py --web -n [name]```
to run the auto-included non-php server, run ```python server.py``` in terminal/cmd (on the project directory), and the server will start in <a href="http://localhost:5590">http://localhost:5590</a>
## Python terminal-side mode
to create the project, run ```python ypg.py -pt -n [name]``` or ```python ypg.py --python-terminal -n [name]```
to run the python terminal-side project, run ```python main.py``` in terminal/cmd (on the project directory), and the server will start
## LICENSE
You can use ypg for non-comercial projects and comercial use, its open for everyone, you can do what you wants
- no tax
- no limits
Welcome to the revenge
## Support
I'm the support, contact-me on discord or telegram
- discord: `solo.yyax`
- telegram: [Yyax13](https://t.me/Yyax13)
---
© 2023 Lucas de Moraes "Yyax" Claro
server.py
import http.server
import socketserver
import random
import os
os.system('pip install yollor')
from yollor import *
tagn1 = f"{c.cyan('[')}{c.yellow('1')}{c.cyan(']')}"
tagn2 = f"{c.cyan('[')}{c.yellow('2')}{c.cyan(']')}"
hashtag = f"{c.cyan('[')}{c.yellow('#')}{c.cyan(']')}"
class CustomHTTPRequestHandler(http.server.SimpleHTTPRequestHandler):
def log_message(self, format, *args):
request_info = f"{c.yellow('<--')} {c.yellow('|')} {c.cyan('Request Code')} {c.yellow('|')} {c.purple('IP')} {c.yellow('|')} {c.yellow('-->')}"
request_line = f"{c.yellow('<--')} | {c.cyan(format % args)} | {c.green(self.headers.get('User-Agent', 'Unknown').split('(')[0].strip())} | {c.purple(self.client_address[0])} | {c.yellow('-->')}"
print(request_line)
port = 5590
handler = CustomHTTPRequestHandler
with socketserver.TCPServer(("", port), handler) as httpd:
print(f"Servidor rodando em http://localhost:{port}")
httpd.serve_forever()
app.tsx
// free for use
// https://github.com/Yyax13/ypg
// Insert your code here
global.css
@import 'tailwindcss/base';
@import 'tailwindcss/components';
@import 'tailwindcss/utilities';
tailwind.config.js
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
'./pages/**/*.{js,ts,jsx,tsx,mdx}',
'./components/**/*.{js,ts,jsx,tsx,mdx}',
'./app/**/*.{js,ts,jsx,tsx,mdx}',
],
theme: {
extend: {},
},
plugins: [],
}
Python
Os projetos ultilizando python seguem uma estrutura simples porém com varias funcionalidade, a seguir deixarei os códigos incluidos nos arquivos gerados pela ferramenta
main.py
from misc import update
update.pip(package="yollor") #Do not delete these lines, they are the requeriments installer for the prmTools
README.md
O README.md criado para projetos python é o mesmo que os projetos web criam
loading.py
import os
from yollor import *
import time as SurubaTemporal
frame1 = '|'
frame2 = '/'
frame3 = '-'
frame4 = "\ "
def start(texto, NV):
def clear():
os.system('cls' if os.name == 'nt' else 'clear')
for i in range(NV):
clear()
print(f"{c.cyan(texto)} - {c.red(frame1)}")
SurubaTemporal.sleep(0.3)
clear()
print(f"{c.cyan(texto)} - {c.red(frame2)}")
SurubaTemporal.sleep(0.3)
clear()
print(f"{c.cyan(texto)} - {c.red(frame3)}")
SurubaTemporal.sleep(0.3)
clear()
print(f"{c.cyan(texto)} - {c.red(frame4)}")
SurubaTemporal.sleep(0.3)
clear()
tools.py
import os
import yollor
import sys
def reset():
python = sys.executable
os.execl(python, python, *sys.argv)
def sair():
sys.exit(os.system('cls' if os.name == 'nt' else 'clear'))
update.py
import os as MinT
from misc import loading as Carregante
def pip(package):
Carregante.start(texto="Instalando as dependencias", NV=7)
MinT.system(f'pip install {package} --user -q' if MinT.name == 'nt' else f'pip install {package} -q')
MinT.system(f'pip install {package} -q' if MinT.name == 'nt' else f'pip install {package} --user -q')
Como ultilizar
Você pode ultilizar a ypg simplesmente indo nesse repo e seguindo as instruções
Sim, fui eu que criei a ypg e aproveito essa oportunidade de contato com vocês para pedir ajuda com melhorias e criação de novos tipos de projetos, um ponto que já gostaria de deixar em aberto é: como posso otimizar o install.sh para ele criar uma alias equivalente a do Linux no windows?
Conclusão
Com toda essa explicação podemos claramente ver o potencial da ypg como ferramenta e como projeto, uma alternativa "pobre" do npm, ela pode não ter um desempenho alto como outros gerenciadores que são parte de frameworks sólidos, mas eu ainda acredito que com ajuda poderemos desenvolver o melhor gerenciador de projetos
Obrigado
© Lucas de Moraes "Yyax" Claro