Plataforma para atendimento a outras empresas que necessitam de atendimento técnico.

Overview
SoftClient Logo

Plataforma para atendimento a outras empresas que necessitam de atendimento técnico. É possível que os usuarios de empresas parceiras registrem solicitações para atendimento de seus equipamentos, tais como: computador, impressora, nobreak e notebook. E os técnicos poderão posicionar para atendimento e ir até o local para fazer a manutenção do mesmo.

Rodando a aplicação:

Após clonar do Git, digite no terminal:

  • python -m venv venv
  • source venv/bin/activate
  • pip install -r requirements.txt
  • flask run

Para criar um usuário do tipo "super", digite o seguinte comando no terminal:

heroku run --app softclient flask super create name username password

Exemplo:

heroku run --app softclient flask super create kelvin kallissin 123456

Para ativar a empresa que irá cadastrar, digite o seguinte comando no terminal:

heroku run --app softclient flask super active cnpj

Exemplo:

heroku run --app softclient flask super active 20232212232343

Deploy da aplicação:

https://softclient.herokuapp.com/api

Endpoints

  1. Owners
  2. Company
    • Login Company
  3. User
    • Login User
  4. Orders
  5. Technicians

Owners

Endpoint referente aos donos da empresa, onde podemos fazer fazer login e listar todos os donos.

Login Owner

Rota responsável pelo login do usuário "owner". Retorna um token de acesso, para que o método GET seja liberado.

url method status
/owner/login POST 200 - 404

BODY

{
  "username": "odaairlopes",
  "password": "123456"
}

RESPONSE

{
  "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTYzOTU5MTA2MywianRpIjoiNTU3MTczNDktOGRkZS00ZmM5LWI1NzktYzE3OGQ5NTI4ZTE1IiwidHlwZSI6ImFjY2VzcyIsInN1YiI6eyJpZCI6MSwibmFtZSI6Ik9kYWlyIiwidXNlcm5hbWUiOiJvZGFhaXJsb3BlcyIsInJvbGUiOiJzdXBlciIsImFjdGl2ZSI6dHJ1ZX0sIm5iZiI6MTYzOTU5MTA2MywiZXhwIjoxNjM5NTkxOTYzfQ.q7nCO3NVPcSOdIZalcQNKOLtVw7u-JdbeJAoUqa5dcQ"
}

GET Owner

Rota responsável por mostrar todos os usuários "owner" cadastrados.

url method status
/owner GET 200

RESPONSE

[
  {
    "id": 1,
    "name": "Odair",
    "username": "odaairlopes",
    "role": "super",
    "active": true
  }
]

Company

Endpoint referente à própria empresa. Aqui, podemos fazer o login, criação de novas empresas, obtenção de todas empresas cadastradas, obtenção de apenas uma empresa (pelo id), obtenção de todos os usuários de determinada empresa e remoção de uma empresa cadastrada. Para a empresa cadastrar uma empresa, é necessário de um super usuário.

Login Company

Rota responsável pelo login da empresa. Retorna um token de acesso para que os outros métodos sejam liberados. Essa empresa precisa estar ativada (ativação feita pelo super usuário).

url method status
/company/login POST 200 - 404

BODY

{
  "username": "sofclient",
  "password": "softclient1234"
}

RESPONSE

{
  "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTYzOTU5MTg1NywianRpIjoiZmJkNWYzMDEtZjJlMS00MDhkLWE5YjUtNzg3M2U4YmFiZjE4IiwidHlwZSI6ImFjY2VzcyIsInN1YiI6eyJpZCI6MSwiYWN0aXZlIjpmYWxzZSwiY25waiI6IjIwMjMyMjEyMjMyMzQyIiwidHJhZGluZ19uYW1lIjoiU29mdCBDbGllbnQgSW5jLiIsImNvbXBhbnlfbmFtZSI6IlNvZnRjbGllbnQiLCJ1c2VybmFtZSI6InNvZmNsaWVudCIsInJvbGUiOiJhZG1pbiJ9LCJuYmYiOjE2Mzk1OTE4NTcsImV4cCI6MTYzOTU5Mjc1N30.TyrNl7sgcVeeI4RjJehpUU_Ln-zD2BLD3M7tAuXCPP4"
}

POST Company

Rota para cadastrar uma empresa.

url method status
/company POST 201 - 400

Formato dos campos:

  • "cnpj": deve ser colocado todos os 14 dígitos, sem pontuação;

BODY

{
  "cnpj": "20232212232342",
  "trading_name": "Soft Client Inc.",
  "company_name": "SoftClient",
  "username": "sofclient",
  "password": "softclient1234"
}

RESPONSE

{
  "id": 1,
  "active": false,
  "cnpj": "20.232.212/2323-42",
  "trading_name": "Soft Client Inc.",
  "company_name": "Softclient"
}

GET Company

Rota para obter todas as empresas cadastradas.

url method status
/company GET 201

RESPONSE

[
  {
    "id": 1,
    "cnpj": "20.232.212/2323-42",
    "trading_name": "Soft Client Inc.",
    "company_name": "Softclient",
    "users": []
  },
  {
    "id": 2,
    "cnpj": "10.123.286/0001-56",
    "trading_name": "Wal-Mart Inc.",
    "company_name": "Walmart",
    "users": []
  },
  {
    "id": 3,
    "cnpj": "08.522.687/0001-37",
    "trading_name": "Microsoft Inc.",
    "company_name": "Microsoft",
    "users": []
  }
]

GET One Company

Rota que pega uma única empresa, pelo seu id.

url method status
company/company_id GET 200 - 404

RESPONSE

{
  "id": 1,
  "cnpj": "20.232.212/2323-42",
  "trading_name": "Soft Client Inc.",
  "company_name": "Softclient",
  "users": []
}

GET Company Users

Rota que pega os usuários cadastrados referentes à empresa.

url method status
/company/company_id/users GET 200 - 400

1 - Caso não haja nenhum usuário cadastrado

RESPONSE

[]

2 - Caso tenha algum usuário cadastrado

RESPONSE

[
  {
    "id": 1,
    "name": "Marcelo",
    "email": "[email protected]",
    "birthdate": "Fri, 22 Nov 1996 00:00:00 GMT",
    "active": true,
    "role": "tech"
  }
]

PATCH Company

Rota responsável pela atualização de uma empresa.

url method status
/company/company_id PATCH 200 - 400

BODY

{
  "trading_name": "Soft Client Enterprise"
}

RESPONSE

{
  "id": 1,
  "cnpj": "20.232.212/2323-42",
  "trading_name": "Soft Client Enterprise",
  "company_name": "Softclient"
}

PATCH Company active

Rota responsável por desativar uma empresa.

url method status
/company/company_id PATCH 200 - 400

BODY

{
  "active": False
}

RESPONSE - status

{
  "id": 1,
  "cnpj": "20.232.212/2323-42",
  "trading_name": "Soft Client Enterprise",
  "company_name": "Softclient",
  "active": false
}

User

Endpoint referente aos usuários que fazem parte da empresa. Aqui podemos fazer a criação de usuário, alteração de usuários, obtenção de todos os usuários, obtenção de usuário por filtragem (email e nome), remoção de um usuário, pesquisa de usuários que solicitaram um serviço e pesquisa de um usuário de certa empresa.

Login User

Rota responsável pelo login do usuário. Retorna um token de acesso para que os outros métodos sejam liberados.

BODY

{
  "email": "[email protected]",
  "password": "kelvin1234"
}

RESPONSE

{
  "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTYzOTU5MzI0NywianRpIjoiYzUwMThhNmEtYWI2Mi00NWI2LTkyM2UtNTA5MzZlNWU0NTBjIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6eyJpZCI6MSwibmFtZSI6IktlbHZpbiIsImVtYWlsIjoia2VsdmluQGdtYWlsLmNvbSIsInBvc2l0aW9uIjoiQ1RPIiwiYWN0aXZlIjp0cnVlLCJiaXJ0aGRhdGUiOiIyMi8wNS8xOTkzIiwicm9sZSI6ImFkbWluIiwiY29tcGFueV9uYW1lIjoiU29mdGNsaWVudCJ9LCJuYmYiOjE2Mzk1OTMyNDcsImV4cCI6MTYzOTU5NDE0N30.UpfscEuF4p-BpO1NJtJb4RkKII-GvDxA-pfJyu4OjC4"
}

POST User

Rota referente a criação de um usuário. Necessário utilizar o token da empresa, para fazer a criação do seu usuário.

url method status
/user POST 201 - 400 - 409

Formato dos campos:

  • "name": string com 150 caracteres;
  • "email": string;
  • "password": string;
  • "birthdate": data no formato XX/XX/XXXX;
  • "position": cargo na empresa, string;
  • "role": permissões que são concedidas ao usuário (user/tech);

BODY

{
  "name": "Kelvin",
  "email": "[email protected]",
  "password": "kelvin1234",
  "birthdate": "22/05/1993",
  "position": "CTO",
  "role": "admin",
  "company_id": 1
}

RESPONSE

{
  "id": 1,
  "name": "Kelvin",
  "email": "[email protected]",
  "position": "CTO",
  "birthdate": "22/05/1993",
  "active": true,
  "role": "admin",
  "company_name": "Softclient"
}

GET Users

Rota para obter todos os usuários cadastrados.

url method status
/user GET 200

RESPONSE

[
  {
    "id": 1,
    "name": "Kelvin",
    "email": "[email protected]",
    "position": "CTO",
    "active": true,
    "birthdate": "22/05/1993",
    "role": "admin",
    "company": {
      "id": 1,
      "trading_name": "Soft Client Inc.",
      "cnpj": "20232212232342"
    }
  }
]

GET One user by id

Rota referente a pesquisa de um usuário, passando o id dele.

url method status
/user/user_id GET 200 - 404

RESPONSE

{
  "id": 1,
  "name": "Kelvin",
  "email": "[email protected]",
  "position": "CTO",
  "active": true,
  "birthdate": "22/05/1993",
  "role": "admin",
  "company": {
    "id": 1,
    "trading_name": "Soft Client Inc.",
    "cnpj": "20232212232342"
  }
}

GET One user by name

Rota referente a pesquisa de um usuário, passando o nome dele.

url method status
/user/user_name GET 200 - 404

RESPONSE

{
  "id": 1,
  "name": "Kelvin",
  "email": "[email protected]",
  "position": "CTO",
  "active": true,
  "birthdate": "22/05/1993",
  "role": "admin",
  "company": {
    "id": 1,
    "trading_name": "Soft Client Inc.",
    "cnpj": "20232212232342"
  }
}

GET Company by user id

Rota responsável pela pesquisa de uma empresa utilizando o id do usuário.

url method status
/user/user_id/company GET 200 - 404

RESPONSE

{
  "company": {
    "id": 1,
    "cnpj": "20232212232342",
    "trading_name": "Soft Client Inc.",
    "company_name": "Softclient"
  }
}

GET Order by user id

Rota responsável pela pesquisa de um chamado utilizando o id do usuário. Para essa pesquisa, é necessário passar o token do usuário com a role 'user'.

url method status
/user/user_id/order GET 200 - 404

RESPONSE

[
  {
    "id": 1,
    "type": "computador",
    "status": "fechado",
    "description": "O computador apresenta falhas contínuas",
    "release_date": "Wed, 15 Dec 2021 18:45:47 GMT",
    "update_date": "Wed, 15 Dec 2021 19:02:15 GMT",
    "solution": "Troca de algumas peças do computador, que estavam falhando. Todas elas foram verificadas."
  }
]

PATCH User

Rota referente a atualização de um usuário, passando o id desse usuário.

url method status
/user/user_id PATCH 200 - 404

BODY

{
  "name": "Kelvin Alisson"
}

RESPONSE

{
  "id": 1,
  "name": "Kelvin",
  "email": "[email protected]",
  "position": "CTO",
  "active": true,
  "birthdate": "22/05/1993",
  "role": "admin",
  "company_name": "Softclient"
}

Order

Endpoint referente a criação de um chamado, alteração de usuários, obtenção de todos os chamados, remoção de um chamado, pesquisa do usuário que fez um chamado e pesquisa de um técnico de pelo chamado. O chamado só pode ser criado por um usuário que tenha a role de 'user', sendo necessário o token desse usuário.

POST Order

Rota referente à criação de um chamado.

url method status
/orders POST 200

BODY

{
  "type": "nobreak",
  "description": "No break apitando todo momento",
  "release_date": "22/10/2021",
  "update_date": "16/12/2021",
  "user_id": 1
}

RESPONSE

{
  "id": 1,
  "type": "nobreak",
  "status": "aberto",
  "description": "No break apitando todo momento",
  "release_date": "Thu, 16 Dec 2021 17:05:31 GMT",
  "update_date": "Thu, 16 Dec 2021 17:05:31 GMT",
  "solution": "",
  "user": {
    "id": 1,
    "name": "Kelvin",
    "email": "[email protected]",
    "position": "CTO",
    "role": "admin"
  },
  "technician": null
}

GET Order

Rota responsável por obter todos os chamados.

url method status
/orders GET 200

RESPONSE

[
  {
    "id": 1,
    "type": "nobreak",
    "status": "aberto",
    "description": "No break apitando todo momento",
    "release_date": "Thu, 16 Dec 2021 17:05:31 GMT",
    "update_date": "Thu, 16 Dec 2021 17:05:31 GMT",
    "solution": "",
    "user": {
      "id": 1,
      "name": "Kelvin",
      "email": "[email protected]",
      "position": "CTO",
      "role": "admin"
    },
    "technician": null
  }
]

GET Order by id

Rota responsável pela pesquisa do chamado, passando o id dele na requisição.

url method status
/orders/order_id GET 200 - 404

RESPONSE

{
  "id": 1,
  "type": "Nobreak",
  "status": "aberto",
  "description": "No break apitando todo momento",
  "release_date": "Thu, 16 Dec 2021 17:05:31 GMT",
  "update_date": "Thu, 16 Dec 2021 17:05:31 GMT",
  "solution": "",
  "user": {
    "id": 1,
    "name": "Kelvin",
    "email": "[email protected]",
    "position": "CTO",
    "role": "admin"
  },
  "technician": null
}

GET User by order id

Rota responsável pela pesquisa do usuário que solicitou o chamado, passando o id do chamado na rota.

url method status
/orders/order_id/user GET 200 - 404

RESPONSE

{
  "user": {
    "id": 2,
    "name": "João Guilherme Filho",
    "email": "[email protected]",
    "birthdate": "22/05/1993",
    "role": "user"
  }
}

GET Technician by order id

Rota responsável pela pesquisa do técnico que realizará a manutenção, passando o id do chamado na rota.

url method status
/orders/order_id/technician GET 200 - 404

RESPONSE

{
  "technician": {
    "id": 1,
    "name": "Gustavo Martins",
    "email": "[email protected]",
    "birthdate": "22/11/1996"
  }
}

GET Order by status

Rota responsável por obter os chamados, passando na rota os status disponíveis (aberto, em_atendimento, fechado) e o token do usuário que criou esse chamado.

url method status
/orders/order_status GET 200 - 404

RESPONSE

[
  {
    "id": 1,
    "type": "Nobreak",
    "status": "aberto",
    "description": "No break apitando todo momento",
    "release_date": "Thu, 16 Dec 2021 17:05:31 GMT",
    "update_date": "Thu, 16 Dec 2021 17:05:31 GMT",
    "solution": "",
    "user": {
      "id": 1,
      "name": "Kelvin",
      "email": "[email protected]",
      "position": "CTO",
      "role": "admin"
    },
    "technician": null
  }
]

GET Orders Relatory

Rota responsável para download de relatório de ordens com status igual a aberto e em_atendimento

url method status
/orders/relatory GET 200 - 404

PATCH Order by id

Rota responsável pela atualização de um chamado, passando o id dele na rota.

url method status
/orders/order_id PATCH 200 - 400 - 401 - 404

BODY

{
  "description": "Apresenta falhas contínuas."
}

RESPONSE

{
  "id": 1,
  "type": "Nobreak",
  "status": "aberto",
  "description": "Apresenta falhas contínuas.",
  "release_date": "Thu, 16 Dec 2021 17:05:31 GMT",
  "update_date": "Thu, 16 Dec 2021 17:05:31 GMT",
  "solution": "",
  "user": {
    "id": 1,
    "name": "João",
    "email": "[email protected]",
    "position": "CTO",
    "role": "admin"
  },
  "technician": null
}

DELETE Order

Rota responsável por fazer a remoção de um chamado, passando o id dele na rota.

url method status
/orders/order_id DELETE 200 - 404

RESPONSE - status

204

Technician

Endpoint referente ao técnicos responsáveis por responderem aos chamados. Aqui podemso fazer o login do técnico, inserção de um técnico, alteração de dados do técnico, obtenção de todos os técnicos, obtenção de um técnico apenas, obtenção dos chamados que estão relacionados à um técnico e exclusão de um técnico. Para a criação de um técnico, é necessário o token da empresa. Para as outras rotas, necessário o token do próprio técnico, obtido no login.

LOGIN Technician

Rota responsável pelo login do técnico. Retorna um token de acesso para que os outros métodos sejam liberados.

url method status
/technicians/login POST 200 - 404

BODY

{
  "email": "[email protected]",
  "password": "123456"
}

RESPONSE

{
  "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTYzOTU5NDQzMywianRpIjoiYjJiNDMyZWUtMzlhMC00MTNmLTlhOWYtYTQ5Y2QwYjM4NWQzIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6eyJpZCI6MSwibmFtZSI6Ikd1c3Rhdm8gTWFydGlucyIsImVtYWlsIjoiZ3VzdGF2b21hcnRpbnNAZ21haWwuY29tIiwiYmlydGhkYXRlIjoiRnJpLCAyNyBEZWMgMTk4NSAwMDowMDowMCBHTVQifSwibmJmIjoxNjM5NTk0NDMzLCJleHAiOjE2Mzk1OTUzMzN9.snEqX5nCWlItBDEcOEVXFZHOKYgwrgrFdPgeNGyEwAs"
}

POST Technician

url method status
/technicians POST 200
{
  "name": "Erick Lander",
  "email": "[email protected]",
  "password": "123456",
  "birthdate": "03/05/1989"
}

RESPONSE

{
  "id": 1,
  "name": "Erick Lander",
  "email": "[email protected]",
  "birthdate": "03/05/1989",
  "role": "tech"
}

GET Technician

Rota responsável pela pesquisa de todos os técnicos registrados na API.

url method status
/technicians GET 200
[
  {
    "id": 1,
    "name": "Erick Lander",
    "email": "[email protected]",
    "birthdate": "03/05/1989",
    "role": "tech"
  }
]

GET Technician by id

Rota responsável por trazer os dados de um técnico, passando o id dele na rota.

url method status
/technicians/technician_id GET 200 - 404
{
  "id": 1,
  "name": "Erick Lander",
  "email": "[email protected]",
  "birthdate": "03/05/1989",
  "role": "tech"
}

GET Order by technician id

Rota responsável por obter à qua(is)l chamado(s) aquele técnico foi relacionado, passando o id do técnico na rota.

url method status
/technicians/technician_id/orders GET 200 - 404
[
  {
    "id": 1,
    "type": "nobreak",
    "status": "em_atendimento",
    "description": "Apresenta falhas contínuas.",
    "release_date": "Thu, 16 Dec 2021 17:05:31 GMT",
    "update_date": "Thu, 16 Dec 2021 17:32:12 GMT",
    "solution": "",
    "user": {
      "id": 1,
      "name": "João",
      "email": "[email protected]",
      "position": "CTO",
      "company": {
        "id": 1,
        "cnpj": "52.468.355/0001-03",
        "trading_name": "Microsoft Enterprise"
      }
    }
  }
]

PATCH Technician

Rota responsável pela atualização dos dados do técnico, passando o id do técnico na rota. Para poder fazer as alterações, é necessário estar logado na aplicação.

url method status
/technicians/technician_id PATCH 200 - 400 - 404 - 409

BODY

{
  "name": "Erick"
}

RESPONSE

{
  "id": 1,
  "name": "Erick",
  "email": "[email protected]",
  "birthdate": "03/05/1989",
  "role": "tech"
}

PATCH Take order

Rota responsável pelo técnico assumir um chamado em aberto. Para isso, é necessário apenas passar o id do chamado na rota e o token do técnico que ficará com aquele chamado.

url method status
/technicians/take_order/order_id PATCH 200 - 400 - 404

RESPONSE

{
  "order": {
    "id": 1,
    "status": "em_atendimento",
    "type": "nobreak",
    "description": "Apresenta falhas contínuas.",
    "release_date": "Thu, 16 Dec 2021 17:05:31 GMT",
    "update_date": "Thu, 16 Dec 2021 17:32:12 GMT",
    "user": {
      "id": 1,
      "name": "João",
      "email": "[email protected]",
      "position": "CTO",
      "birthdate": "01/01/2001"
    }
  }
}

PATCH Finalize order

Rota responsável pelo técnico finalizar aquele chamado. Para isso, é necessário apenas passar id do chamado na rota e o token do técnico que havia assumido aquele chamado.

url method status
/technicians/finalize_order/order_id PATCH 200 - 400 - 401 - 404

BODY

{
  "solution": "COMPRA DE UM NOVO NOBREAK."
}

RESPONSE

{
  "order": {
    "id": 1,
    "status": "fechado",
    "type": "nobreak",
    "description": "Apresenta falhas contínuas.",
    "release_date": "Thu, 16 Dec 2021 17:05:31 GMT",
    "update_date": "Thu, 16 Dec 2021 17:34:30 GMT",
    "solution": "COMPRA DE UM NOVO NOBREAK.",
    "user": {
      "id": 1,
      "name": "João",
      "email": "[email protected]",
      "position": "CTO",
      "birthdate": "01/01/2001"
    }
  }
}
Owner
Kelvin Alisson Cantarino
Desenvolvedor Web Full Stack
Kelvin Alisson Cantarino
Braintree Python library

Braintree Python library The Braintree Python library provides integration access to the Braintree Gateway. TLS 1.2 required The Payment Card Industry

Braintree 230 Dec 18, 2022
Automated endpoint management for Amazon Aurora Global Database

This sample code can be used to manage Aurora global database endpoints. After failover the global database writer endpoints swap from one region to the other. This solution automates creation and ma

AWS Samples 13 Dec 08, 2022
Script for downloading Coursera.org videos and naming them.

Coursera Downloader Coursera Downloader Introduction Features Disclaimer Installation instructions Recommended installation method for all Operating S

Coursera Downloader 9k Jan 02, 2023
Prisma Cloud utility scripts, and a Python SDK for Prisma Cloud APIs.

pcs-toolbox Prisma Cloud utility scripts, and a Python SDK for Prisma Cloud APIs. Table of Contents Support Setup Configuration Script Usage CSPM Scri

Palo Alto Networks 34 Dec 15, 2022
Userbot Telegram dengan Telethon

FLICKS - UBOT Repo FLICKS UBOT Repo Yang Dibuat Oleh Rizzz Dari beberapa Repo Yang Ada Di Github. Generate String Using Replit ⤵️ DEPLOY TO HEROKU Sup

FJ_GAMING 14 May 16, 2022
multi-purpose discord bot

virus multi-purpose discord bot ⚠️ WARNING This project is incomplete and may not work as expected. Download & Run Install Python =3.10 Clone the sou

miten 2 Jan 17, 2022
A simple python discord bot with commands for moderation and utility.

Discord Bot A simple python discord bot with commands for moderation, utility and fun. Moderation $kick user reason - Kick a user from the server

3 Jan 07, 2022
Python client for the LightOn Muse API

lightonmuse Python bindings to production-ready intelligence primitives powered by state-of-the-art language models. Create. Process. Understand. Lear

LightOn 12 Apr 10, 2022
Python: Asynchronous client for the Open-Meteo API.

Python: Asynchronous client for the Open-Meteo API. Asynchronous client for the Open-Meteo API. About Open-Meteo offers free weather forecast APIs for

Franck Nijhof 11 Dec 21, 2022
Nft-maker - Create your own NFT!

nft-maker How to If you're going to use this program, change the pictures in the "images" folder. All images must be of the same resolution and size.

Georgii Arakelian 4 Mar 13, 2022
Properly-formatted dynamic timestamps for Discord messages

discord-timestamps discord-timestamps generates properly-formatted dynamic timestamps for Discord messages, with support for Arrow objects. format

Ben Soyka 2 Mar 10, 2022
A Discord chat bot for the Tardsquad guild (Discord name for server).

Tardsquad Discord Bot A Discord chat bot for the Tardsquad guild (Discord name for server). Resouces Discord Developer Portal A general tutorial for a

Tardsquad Quality Code Inc. 4 Jul 26, 2022
Open Resource Calculator Module for Python

Calculator Module for Python By White Night Install #

White_Night_awa 4 Aug 22, 2022
The scope of this project will be to build a data ware house on Google Cloud Platform that will help answer common business questions as well as powering dashboards

The scope of this project will be to build a data ware house on Google Cloud Platform that will help answer common business questions as well as powering dashboards.

Shweta_kumawat 2 Jan 20, 2022
A telegram bot for generate fake details. Written in python using telethon

FakeDataGenerator A telegram bot for generate fake details. Written in python using telethon. Mandatory variables API_HASH Get it from my telegram.org

Oxidised-Man 6 Dec 19, 2021
A Simple Telegram Bot That Can Generate Strong Password With Many Features Written In Python Using Pyrogram

Password-Generator-Bot A Simple Telegram Bot That Can Generate Strong Password With Many Features Written In Python Using Pyrogram Features Random Pas

Muhammed Fazin 17 Dec 23, 2022
Dodo - A graphical, hackable email client based on notmuch

Dodo Dodo is a graphical email client written in Python/PyQt5, based on the comm

Aleks Kissinger 44 Nov 12, 2022
Minecraft checker

This Project checks if a minecraft account is a nfa/sfa account or invalid it also says you if the ip you are using is shadow banned from minecraft (shadow bann is if you send too many login attempts

baum1810 4 Oct 03, 2022
Telegram Music Bot for YouTube/SoundCloud/Mixcloud

Telegram Music Bot Telegram Music Bot for YouTube/SoundCloud/Mixcloud This bot downloads and sends the audio when someone send a YouTube/SoundCloud/Mi

Calls Music 76 Jan 02, 2023
"Nesse projeto criei uma automação para abrir as tarefas no Jira em massa pegando de uma determinada fila do Zendesk."

automacao-Zendesk "Nesse projeto criei uma automação para abrir as tarefas no Jira em massa pegando de uma determinada fila do Zendesk." en-us "In thi

tokoyamy 1 Dec 20, 2021