Blog

  • Proyecto-Final—T-picos-Avanzados-de-Programaci-n

    Proyecto-Final—T-picos-Avanzados-de-Programaci-n

    Hola, buen día. Somos el equipo 17, conformado por Gael y Luis. A contincuación presentaremos el desarrollo de nuestro proyecto final que realizamos en conjunto a lo largo de este semestre de la materia de Tópicos Avanzados de Programamción. Desarrollamos, diseñamos y construimos un sistema funcional con dos CRUD, en inglés (Create, Read, Upgrade, Delete), uno de los acrónimos más escuchadas y utilizados en el mundo de la programación por su uso y significado, de esta forma se garantiza una sistema completo, que en conjunto con nuestros compañeros de clase, desarrollamos diversas aplicaciones con interfaces gráficas haciendo uso de NetBeans y Postgress SQL.

    Nuestro proyecto trata de un sistema de control para un establecimiento de reparación de dispositivos electrónicos, por lo tanto interactuan tres principales actores. Los cuales son los administradores, los técnicos y los clientes. En este caso para llevar a cabo un excelente desempeño del sistema, nuestro trabajo esta dividido en dos CRUD, uno para administradores y otro para técnicos. Cada uno tiene roles totalmente diferentes, aunque coinciden en algunas cosas por su principales actividades que realiza cada uno.

    Nuestro proyecto está construido en Java para las interfaces gráficas y una base de datos en PostgressSQL. El proyecto engloba el registro, manejo y distribución de una tienda de reparación de electrónicos a partir de un sistema de interfaces los cuales son:

    • Inicio de sesión

    • Menú administrador 3 sistemas de gestión:

    • Gestión de usuarios
    • Gestión de inventario
    • Gestión de reparaciones

    • Menú técnico 2 sistemas de gestión:

    • Gestión de reparaciones
    • Gestión de inventario

    • Apartado de envio de correos electrónicos

    El proyecto esta desarrollado a partir del patrón de diseño MVC en el Modelo-Vista-Controlador para organizar el código en capas, organizando la lógica de negocio en el Modelo, la interfaz de usuario en la Vista y el control de flujo de la aplicación en el Controlador. El proyecto incluye la funcionalidad completa de gestión de usuarios y productos de esta tienda que en conjunto con una interfaz intuitiva y fácil de utilizar engloba un campo de aplicación útil para el comercio que pueda hacer uso.

    El apartado de la vista del programa esta conformado por las clases que hacen parte del entorno gráfico del programa, en este caso, a continuación, se explicara brevemente cómo funciona la ventana de inicio de sesión, el menú de administración y el menú de técnicos. El sistema esta integrado con una ventana de inicio de sesión la cual esta compuesta de la siguiente forma.

    VENTANA DE INICIO DE SESIÓN DEL SISTEMA.

    La clase implementa una interfaz gráfica para un sistema de inicio de sesión. A continuación, se explica brevemente su funcionamiento:

    1. Clase y Constructor: La clase InicioSesion extiende JFrame, lo que significa que es una ventana de aplicación. El constructor InicioSesion() inicializa los componentes de la interfaz gráfica mediante el método initComponents().
    2. Componentes de la Interfaz: • Se crean varios componentes gráficos, como etiquetas (JLabel), campos de texto (JTextField y JPasswordField), un combo box (JComboBox) para seleccionar el rol del usuario, un checkbox (JCheckBox) para mostrar u ocultar la contraseña, y un botón (JButton) para iniciar sesión. • Se establece un diseño utilizando GroupLayout para organizar estos componentes en la ventana.
    3. Mostrar/Ocultar Contraseña: El método cbVerContraseñaActionPerformed se encarga de cambiar el carácter de eco del campo de contraseña. Si el checkbox está seleccionado, se muestra la contraseña; de lo contrario, se oculta.
    4. Iniciar Sesión: El método btnIniciarSesionActionPerformed se ejecuta cuando el usuario hace clic en el botón de iniciar sesión. Este método: • Obtiene el nombre de usuario, la contraseña y el rol seleccionados. • Utiliza un objeto UsuarioDAO para obtener una lista de usuarios registrados. • Verifica si las credenciales ingresadas coinciden con algún usuario en la lista. • Si las credenciales son válidas, redirige al usuario a una ventana diferente según su rol (Administrador o Técnico) y cierra la ventana de inicio de sesión. Si las credenciales son incorrectas, muestra un mensaje de error.
    5. Estructura General: La clase está estructurada para ser parte de una aplicación más grande, donde UsuarioDAO se encarga de la lógica de acceso a datos y Usuario representa la entidad de usuario. En resumen, esta clase proporciona una interfaz gráfica para que los usuarios ingresen sus credenciales y accedan a diferentes partes de la aplicación según su rol, validando las credenciales contra una lista de usuarios.

    VENTANA DE MENÚ DE ADMINISTRACIÓN.

    La clase represena una ventana de interfaz gráfica para un administrador en un sistema de gestión. A continuación, se explica brevemente su funcionamiento:

    1. Constructor y Carga Inicial: • El constructor VPdeADM() inicializa los componentes de la interfaz gráfica mediante el método initComponents(). • Al abrir la ventana, se llaman a los métodos cargarTablaReparaciones() y cargarTablaInventario() para llenar las tablas con datos sobre reparaciones y artículos en el inventario.
    2. Componentes de la Interfaz: • La ventana contiene varios paneles (JPanel), etiquetas (JLabel) y tablas (JTable) que muestran información sobre reparaciones y el inventario. • Incluye iconos que permiten al usuario interactuar con diferentes secciones del sistema, como la gestión de usuarios, gestión de inventario y gestión de reparaciones.
    3. Interacción del Usuario: • Cada icono tiene un MouseListener que, al ser clicado, abre una nueva ventana correspondiente a la gestión de usuarios (GdUdeADM), gestión de inventario (GdIdeADM) o gestión de reparaciones (GdRdeADM). • El icono de “Cerrar Sesión” permite al usuario cerrar la ventana actual y regresar a la ventana de inicio de sesión (InicioSesion).
    4. Carga de Datos en Tablas: • cargarTablaReparaciones(): Este método crea un modelo de tabla (DefaultTableModel), obtiene una lista de reparaciones a través de ReparacionDAO, y llena la tabla con los datos de cada reparación (ID, cliente, técnico, dispositivo y estado). • cargarTablaInventario(): Similar al anterior, este método crea un modelo de tabla para el inventario, obtiene los items desde InventarioDAO, y llena la tabla con los datos de cada item (ID, nombre, cantidad disponible y costo unitario).
    5. Estructura General: • La clase está diseñada para ser parte de una aplicación más grande, donde ReparacionDAO e InventarioDAO son responsables de la lógica de acceso a datos para las reparaciones y el inventario, respectivamente. En resumen, VPdeADM es una interfaz gráfica que permite a un administrador gestionar reparaciones y consultar el inventario disponible, mostrando información relevante en tablas y permitiendo la navegación a otras secciones del sistema.

    VENTANA DE MENÚ DE TÉCNICO.

    La clase VPdeTEC es una interfaz gráfica que permite a un técnico gestionar reparaciones y consultar el inventario disponible, mostrando información relevante en tablas y permitiendo la navegación a otras secciones del sistema. Se define una clase VPdeTEC, que representa una ventana de interfaz gráfica para un técnico en un sistema de gestión. A continuación, se explica brevemente su funcionamiento:

    1. Constructor y Carga Inicial: • El constructor VPdeTEC() inicializa los componentes de la interfaz gráfica mediante el método initComponents(). • Al abrir la ventana, se llaman a los métodos cargarTablaRRegistradas() y cargarTablaIDisponible() para llenar las tablas con datos relevantes sobre reparaciones registradas y artículos disponibles en el inventario.
    2. Componentes de la Interfaz: • La ventana contiene varios paneles (JPanel) y etiquetas (JLabel) que describen las secciones de gestión de reparaciones, gestión de inventario y cerrar sesión. • Incluye dos tablas (JTable): tablaRRegistradas para mostrar un resumen de las reparaciones registradas y tablaIDisponible para mostrar un resumen del inventario disponible. • También hay iconos que permiten al usuario interactuar con diferentes secciones del sistema, como la gestión de reparaciones y la gestión de inventario.
    3. Interacción del Usuario: • Cada icono tiene un MouseListener que, al ser clicado, abre una nueva ventana correspondiente a la gestión de reparaciones (GdRdeTEC) o gestión de inventario (GdIdeTEC). • El icono de “Cerrar Sesión” permite al usuario cerrar la ventana actual y regresar a la ventana de inicio de sesión (InicioSesion).
    4. Carga de Datos en Tablas: • cargarTablaRRegistradas(): Este método crea un modelo de tabla (DefaultTableModel), obtiene una lista de reparaciones a través de ReparacionDAO, y llena la tabla con los datos de cada reparación (ID, cliente, dispositivo y estado). • cargarTablaIDisponible(): Similar al anterior, este método crea un modelo de tabla para el inventario, obtiene los items desde InventarioDAO, y llena la tabla con los datos de cada item (ID, nombre, cantidad disponible y costo unitario).
    5. Estructura General: • La clase está diseñada para ser parte de una aplicación más grande, donde ReparacionDAO e InventarioDAO son responsables de la lógica de acceso a datos para las reparaciones y el inventario, respectivamente. En el apartado del modelo está conformado por las clases que contienen la lógica de las clases del paquete de vista. A continuación, se explicará brevemente el funcionamiento de las clases principales del sistema.

    CÓDIGO DE LA CONEXIÓN DE LA BASE DE DATOS.

    La clase ConexionDB proporciona métodos para establecer y cerrar conexiones a la base de datos de PostgreSQL, asegurando que la conexión se maneje de manera eficiente y segura. Proporcionado. Se encarga de gestionar la conexión a una base de datos PostgreSQL. A continuación, se explica brevemente su funcionamiento:

    1. Constantes de Conexión: • Se definen tres constantes: URL, USER y PASSWORD, que contienen la información necesaria para conectarse a la base de datos. URL especifica la dirección de la base de datos, USER es el nombre de usuario y PASSWORD es la contraseña.
    2. Conexión Estática: • Se declara una variable estática connection que almacenará la conexión a la base de datos. Inicialmente, se establece en null.
    3. Método getConnection(): • Este método es responsable de obtener una conexión a la base de datos. • Primero, verifica si la conexión es null o si está cerrada. Si es así, intenta cargar el driver de PostgreSQL y establecer una nueva conexión utilizando DriverManager.getConnection(). • Si el driver no se encuentra, lanza una excepción SQLException con un mensaje de error. • Si la conexión se establece correctamente, se devuelve el objeto Connection.
    4. Método closeConnection(): • Este método se encarga de cerrar la conexión a la base de datos si está abierta. • Verifica si la conexión no es null y no está cerrada antes de intentar cerrarla. Si ocurre un error al cerrar la conexión, se captura la excepción y se imprime un mensaje de error en la consola.
    5. Uso General: • La clase ConexionDB se utiliza para centralizar la lógica de conexión a la base de datos, facilitando la reutilización del código en diferentes partes de la aplicación que necesiten acceder a la base de datos.

    CÓDIGO DE LA CLASE INVENTARIO

    L a clase Inventario es un modelo que encapsula la información y el comportamiento de un artículo en un sistema de gestión de inventario, permitiendo la creación de objetos que representan artículos con sus respectivas propiedades y métodos para acceder y modificar esos datos. Se define una clase Inventario que representa un artículo en un sistema de gestión de inventario. A continuación, se explica brevemente su funcionamiento:

    1. Atributos de la Clase: • La clase tiene seis atributos: • idItem: un entero que identifica de manera única el artículo. • nombre: una cadena que representa el nombre del artículo. • descripcion: una cadena que proporciona una descripción del artículo. • cantidadDisponible: un entero que indica cuántas unidades del artículo están disponibles en inventario. • costoUnitario: un objeto BigDecimal que representa el costo por unidad del artículo, permitiendo manejar valores monetarios con precisión. • fechaActualizacion: un objeto Timestamp que almacena la fecha y hora de la última actualización del artículo en el inventario.
    2. Constructor: • La clase incluye un constructor que permite inicializar todos los atributos al crear una nueva instancia de Inventario. Este constructor toma como parámetros los valores correspondientes a cada atributo.
    3. Getters y Setters: • Se proporcionan métodos “getter” y “setter” para cada atributo. • Los métodos “getter” permiten acceder a los valores de los atributos, mientras que los métodos “setter” permiten modificar esos valores. Esto sigue el principio de encapsulamiento, que es una buena práctica en programación orientada a objetos.
    4. Uso General: • La clase Inventario se utiliza para representar y manipular los datos de los artículos en el inventario de un sistema, facilitando la gestión de los mismos en la aplicación.

    CÓDIGO DE LA CLASE REPARACIÓN

    La clase Reparacion es un modelo que encapsula la información y el comportamiento de un registro de reparación en un sistema de gestión, permitiendo la creación de objetos que representan reparaciones con sus respectivas propiedades y métodos para acceder y modificar esos datos. Se define una clase Reparacion que representa un registro de reparación en un sistema de gestión de reparaciones. A continuación, se explica brevemente su funcionamiento:

    1. Atributos de la Clase: • La clase tiene nueve atributos: • idReparacion: un entero que identifica de manera única la reparación. • idCliente: un entero que representa el ID del cliente que solicita la reparación. • idTecnico: un entero que representa el ID del técnico encargado de realizar la reparación. • dispositivo: una cadena que describe el dispositivo que necesita reparación. • descripcion: una cadena que proporciona detalles sobre la reparación. • estado: una cadena que indica el estado actual de la reparación (por ejemplo, “pendiente”, “en proceso”, “completada”). • costoEstimado: un objeto BigDecimal que representa el costo estimado de la reparación, permitiendo manejar valores monetarios con precisión. • fechaIngreso: un objeto Timestamp que almacena la fecha y hora en que se ingresó la reparación al sistema. • fechaEntrega: un objeto Timestamp que almacena la fecha y hora en que se espera que se entregue el dispositivo reparado.
    2. Constructor: • La clase incluye un constructor que permite inicializar todos los atributos al crear una nueva instancia de Reparacion. Este constructor toma como parámetros los valores correspondientes a cada atributo.
    3. Getters y Setters: • Se proporcionan métodos “getter” y “setter” para cada atributo. • Los métodos “getter” permiten acceder a los valores de los atributos, mientras que los métodos “setter” permiten modificar esos valores. Esto sigue el principio de encapsulamiento, que es una buena práctica en programación orientada a objetos.
    4. Uso General: • La clase Reparacion se utiliza para representar y manipular los datos de las reparaciones en un sistema de gestión, facilitando la gestión de las reparaciones y su seguimiento.

    CÓDIDO DE LA CLASE USUARIOS

    La clase Usuario es un modelo que encapsula la información y el comportamiento de un usuario en un sistema de gestión, permitiendo la creación de objetos que representan usuarios con sus respectivas propiedades y métodos para acceder y modificar esos datos. A continuación, se explica brevemente su funcionamiento:

    1. Atributos de la Clase: • La clase tiene ocho atributos: • idUsuario: un entero que identifica de manera única al usuario. • nombre: una cadena que representa el nombre del usuario. • rol: una cadena que indica el rol del usuario en el sistema (por ejemplo, “administrador”, “técnico”, “cliente”). • correo: una cadena que almacena la dirección de correo electrónico del usuario. • telefono: una cadena que contiene el número de teléfono del usuario. • usuario: una cadena que representa el nombre de usuario utilizado para iniciar sesión. • contrasena: una cadena que almacena la contraseña del usuario (debería ser manejada con cuidado por razones de seguridad). • fechaCreacion: un objeto Timestamp que indica la fecha y hora en que se creó el registro del usuario.
    2. Constructor: • La clase incluye un constructor que permite inicializar todos los atributos al crear una nueva instancia de Usuario. Este constructor toma como parámetros los valores correspondientes a cada atributo.
    3. Getters y Setters: • Se proporcionan métodos “getter” y “setter” para cada atributo. • Los métodos “getter” permiten acceder a los valores de los atributos, mientras que los métodos “setter” permiten modificar esos valores. Esto sigue el principio de encapsulamiento, que es una buena práctica en programación orientada a objetos.
    4. Uso General: • La clase Usuario se utiliza para representar y manipular los datos de los usuarios en un sistema de gestión, facilitando la gestión de la información del usuario y su autenticación.

    Y nuestro sistema queda desarrollado de la siguiente forma:

    Cuando se arranca el sistema, este inicialmente mostrara un interfaz con un panel de inicio de sesión. Como se ve a continuación.

    image

    Primero se eleige el rol en el cual se va a iniciar sesión ysegún sea el en el que se inicie sesión. Este mostrara una ventana con las caracteristicas correspondienes, por ejemplo el administrador y quedaría de la siguiente forma.

    image

    Entrando en el entorno del rol de administrador, se pueden ejecutar 3 principales pestañas, las cuales principalemnte son de gestion y pueden ser modificados según sea necesario.

    image

    Entrando a la ventana de gestión de usuarios, tenemos una interfaz con la posibilidad de editar, actualizar y eliminar los campos de la tabla y poder gestionar la variedad de base de datos y se ve de la siguiente forma.

    image

    Este es la interfaz de la gestión de inventario, en la cual podemos editar el stock de los materiales que estén en la agregados en la tabla y pueden ser manipulados según sea el registro del administrador, de esta forma nuestra tienda tiene un complemento con ayuda de las componentes que pueden ser gestionadas dentro de la tienda.

    image

    Luego, tenemos la interfaz de gestión de reparaciones, en el cual podemos interactuar con los registros de reportes que se hayan agregado o que deban ser agregados de aquellos dispositivos que estar fallando.

    image

    Así también, nuestro sistema cuenta con una interfaz para el rol de técnico, aquellas personas que trabajan como empleados dentro de la tienda. Primero entonces se deberia de salir de la interfaaz de administrador e iniciarse sesión en el rol de técnico, como se ve a continuación.

    image

    Después nos encontramos con la ventana principal de la interfaz del rol de técnico, en donde podemos ver las opciones que tiene el técnico, como la gestión de las reparaciones y el de inventario.

    image

    Como primera opción tenemos la gestión de reparaciones, que se enfoca más en el rol técnico, al igual como la visualización de la gestión del inventario. Como se muestra a continuación.

    image

    image

    Es así como queda finalmente desarrollado nuestro proyecto, implementando tencologías como lo es JAVA, el entorno de desarrollo NetBeans y también una base de datos con Postgrest enlazda a NetBeans, en la cual podemos consultar el inicio de de sesión y la tabla de datos de usuarios, inventario y diversas reparaciones.

    2024-12-17.07-46-19.mp4
    Visit original content creator repository https://github.com/VelaHGa4/Proyecto-Final—T-picos-Avanzados-de-Programaci-n
  • Extended-Asset-References

    Extended Asset References 🎮

    Extended Asset References is an open-source package that enhances Unity’s Addressable Asset System functionality. This package introduces custom attributes designed to improve and streamline your workflow when dealing with AssetReferences.

    Compatible with:

    ✨ Features

    • Custom attributes for enhanced AssetReference handling
    • Improved workflow for Addressable asset management
    • Easy integration with existing Unity projects
    • Visual sprite preview and selection tools
    • Automated atlas validation and problem-solving

    📦 Installation

    Install via Unity Package Manager using one of these Git URLs:

    • Main branch:
    https://github.com/ese9/Extended-Asset-References.git
    
    • Specific version:
    https://github.com/ese9/Extended-Asset-References.git#v1.0.0
    

    🚀 Usage

    Once installed, enhance your Unity scripts with our custom attributes for better asset reference management.

    Asset Reference Sprite

    FromAtlas

    using Nine.AssetReferences;
    using UnityEngine;
    using UnityEngine.AddressableAssets;
    
    public class Resource : ScriptableObject
    {
        [FromAtlas]
        public AssetReferenceSprite iconRef;
    }

    FromSprite

    using Nine.AssetReferences;
    using UnityEngine;
    using UnityEngine.AddressableAssets;
    
    public class Resource : ScriptableObject
    {
        [FromSprite]
        public AssetReferenceSprite iconRef;
    }

    Example of selecting a sprite when using any of the attributes

    demo_1

    📄 License

    This project is licensed under the MIT License. See the LICENSE file for details.

    Visit original content creator repository https://github.com/ese9/Extended-Asset-References
  • logistics

    Logistics Demo App

    Postgres Python Django Swagger Git JWT

    Description

    The application is a model of a network for selling goods. The network is a hierarchical structure of 3 levels:

    • Factory;
    • Retail network;
    • Individual entrepreneur.

    Each link in the network refers to only one equipment supplier (not necessarily the previous one in the hierarchy). It is important to note that the hierarchy level is determined not by the name of the link, but by its relationship to other elements of the network, i.e. The plant is always at level 0, and if the retail network relates directly to the plant, bypassing other links, its level is 1.

    Installation

    Follow these steps:

    1. Clone repo:
      https://github.com/ShadeSWD/logistics.git
    2. Install dependencies::
      cd price-maker
      poetry init
    3. Setup environment: use template in .env.sample
    4. Perform migrations:
      python manage.py migrate
    5. Run app:
      python manage.py runserver
    6. Open app: The app is ready to process requests
    7. Create superuser:
         python manage.py createsuperuser
    8. Create vendor: Now, when you created a superuser, you can log in and create vendors at <your_host>/users/

    To load data from fixtures run:

        manage.py loaddata fixtures/vendors_data.json

    To dump data from fixtures run:

        manage.py dumpdata --indent=2 users > fixtures/vendors_data.json

    Docs:

    Docs are available at:

    • <your_host>/swagger/
    • <your_host>/redoc/
    Visit original content creator repository https://github.com/ShadeSWD/logistics
  • TrashFall-game

    TrashFall-game

    Trashfall Game is an addictive 2D arcade game developed using Python and Pygame. The objective of the game is to catch falling trash to increase your score while avoiding game over. The game is simple yet challenging, making it fun for players of all ages.

    Features

    • Simple and addictive gameplay.
    • Randomly generated falling trash.
    • Score tracking and game-over detection.
    • Sound effects and background music.
    • High score leaderboard.

    Installation

    To install and run the Trashfall Game, follow these steps:

    1. Ensure you have Python installed on your system. You can download it from here.
    2. Clone the repository:
      git clone https://github.com/AntonAshraf/TrashFall-game.git
      
    3. Navigate to the project directory:
      cd TrashFall-game
      
    4. Install the required dependencies:
      pip install -r requirements.txt
      
    5. Run the game:
      python main.py
      

    How to Play

    • Use the arrow keys to move the player left and right.
    • Catch the falling trash to increase your score.
    • Every 10 collected trash gets an extra life.
    • Avoid missing the trash, as it will lead to game over.
    • The game gets progressively harder as you catch more trash.
    • The game ends when the player misses three pieces of trash (and extra lives if have).

    Screenshots

    Main Page Gameplay GameOver

    License

    This project is licensed under the MIT License. See the LICENSE file for more details.

    Visit original content creator repository https://github.com/AntonAshraf/TrashFall-game
  • Github-Achievements

    🏆 GitHub Achievements 🏆




    🤔️ Displaying Achievements 🤔️

    Displaying achievements on your profile is completely optional. By default, they can be seen by anyone viewing your public profile.

    You can opt out from having achievements displayed on your profile by going to your profile settings.


    🗒️ Achievement List 🗒️


    Badge Name How to get Needed amount
    Heart On Your Sleeve Heart On Your Sleeve (???)
    DEFAULT BRONZE SILVER GOLD
    (?) (?) (?) (?)
    Open Sourcerer Open Sourcerer (???)
    DEFAULT BRONZE SILVER GOLD
    (?) (?) (?) (?)
    Starstruck Starstruck Created a repository that has many stars
    DEFAULT BRONZE SILVER GOLD
    16 128 512 4096
    Quickdraw Quickdraw Gitty up!
    (closed an issue / pull request within 5 minutes of opening)
    DEFAULT
    1
    Pair Extraordinaire Pair Extraordinaire Coauthored commits on merged pull request
    DEFAULT BRONZE SILVER GOLD
    1 10 24 48
    Pull Shark Pull Shark Opened a pull request that has been merged
    DEFAULT BRONZE SILVER GOLD
    2 16 128 1024
    Galaxy Brain Galaxy Brain Answered a discussion
    (got an accepted answer)
    DEFAULT BRONZE SILVER GOLD
    2 8 16 32
    YOLO YOLO Merged a pull request without a review
    DEFAULT
    1
    Public Sponsor Public Sponsor Sponsored an open source contributor through GitHub Sponsors
    DEFAULT
    1

    ? means it is unknown how to get a particular achievement

    👋 Achievement Skin Tone 👋

    Some achievements’ appearance depends on your Emoji Skin Tone Preference.

    You can change your preferred Skin Tone by going to appearance settings.


    Badge Name Skin Tone Versions
    Starstruck Starstruck
    👋 👋🏻 👋🏼 👋🏽 👋🏾 👋🏿
    👋 👋🏻 👋🏼 👋🏽 👋🏾 👋🏿
    Quickdraw Quickdraw
    👋 👋🏻 👋🏼 👋🏽 👋🏾 👋🏿
    👋 👋🏻 👋🏼 👋🏽 👋🏾 👋🏿

    ✨ Highlights Badges ✨


    Badge Name How to get
    pro-black pro-white Pro Use GitHub Pro
    developer-program-member-darkdeveloper-program-member-light Developer Program Member Be a registered member of the GitHub Developer Program
    security-bug-bounty-hunter-darksecurity-bug-bounty-hunter-light Security Bug Bounty Hunter Helped out hunting down security vulnerabilities at GitHub Security
    github-campus-expert-darkgithub-campus-expert-light GitHub Campus Expert Participate in the GitHub Campus Program
    security-advisory-credit-darksecurity-advisory-credit-light Security advisory credit Have your security advisory submitted to the GitHub Advisory Database accepted

    ❌ Badges no longer earnable ❌


    Badge Name How to get Needed amount
    Mars 2020 Contributor Mars 2020 Contributor Contributed code to a repository used in the Mars 2020 Helicopter Mission
    DEFAULT
    1
    Arctic Code Vault Contributor Arctic Code Vault Contributor Contributed code to a repository in the 2020 GitHub Archive Program
    DEFAULT
    1

    ℹ️ More information ℹ️

    You can find more information about GitHub Badges under this link.


    Visit original content creator repository https://github.com/cybersaksham/Github-Achievements
  • Github-Achievements

    🏆 GitHub Achievements 🏆




    🤔️ Displaying Achievements 🤔️

    Displaying achievements on your profile is completely optional. By default, they can be seen by anyone viewing your public profile.

    You can opt out from having achievements displayed on your profile by going to your profile settings.


    🗒️ Achievement List 🗒️


    Badge Name How to get Needed amount
    Heart On Your Sleeve Heart On Your Sleeve (???)
    DEFAULT BRONZE SILVER GOLD
    (?) (?) (?) (?)
    Open Sourcerer Open Sourcerer (???)
    DEFAULT BRONZE SILVER GOLD
    (?) (?) (?) (?)
    Starstruck Starstruck Created a repository that has many stars
    DEFAULT BRONZE SILVER GOLD
    16 128 512 4096
    Quickdraw Quickdraw Gitty up!
    (closed an issue / pull request within 5 minutes of opening)
    DEFAULT
    1
    Pair Extraordinaire Pair Extraordinaire Coauthored commits on merged pull request
    DEFAULT BRONZE SILVER GOLD
    1 10 24 48
    Pull Shark Pull Shark Opened a pull request that has been merged
    DEFAULT BRONZE SILVER GOLD
    2 16 128 1024
    Galaxy Brain Galaxy Brain Answered a discussion
    (got an accepted answer)
    DEFAULT BRONZE SILVER GOLD
    2 8 16 32
    YOLO YOLO Merged a pull request without a review
    DEFAULT
    1
    Public Sponsor Public Sponsor Sponsored an open source contributor through GitHub Sponsors
    DEFAULT
    1

    ? means it is unknown how to get a particular achievement

    👋 Achievement Skin Tone 👋

    Some achievements’ appearance depends on your Emoji Skin Tone Preference.

    You can change your preferred Skin Tone by going to appearance settings.


    Badge Name Skin Tone Versions
    Starstruck Starstruck
    👋 👋🏻 👋🏼 👋🏽 👋🏾 👋🏿
    👋 👋🏻 👋🏼 👋🏽 👋🏾 👋🏿
    Quickdraw Quickdraw
    👋 👋🏻 👋🏼 👋🏽 👋🏾 👋🏿
    👋 👋🏻 👋🏼 👋🏽 👋🏾 👋🏿

    ✨ Highlights Badges ✨


    Badge Name How to get
    pro-black pro-white Pro Use GitHub Pro
    developer-program-member-darkdeveloper-program-member-light Developer Program Member Be a registered member of the GitHub Developer Program
    security-bug-bounty-hunter-darksecurity-bug-bounty-hunter-light Security Bug Bounty Hunter Helped out hunting down security vulnerabilities at GitHub Security
    github-campus-expert-darkgithub-campus-expert-light GitHub Campus Expert Participate in the GitHub Campus Program
    security-advisory-credit-darksecurity-advisory-credit-light Security advisory credit Have your security advisory submitted to the GitHub Advisory Database accepted

    ❌ Badges no longer earnable ❌


    Badge Name How to get Needed amount
    Mars 2020 Contributor Mars 2020 Contributor Contributed code to a repository used in the Mars 2020 Helicopter Mission
    DEFAULT
    1
    Arctic Code Vault Contributor Arctic Code Vault Contributor Contributed code to a repository in the 2020 GitHub Archive Program
    DEFAULT
    1

    ℹ️ More information ℹ️

    You can find more information about GitHub Badges under this link.


    Visit original content creator repository https://github.com/cybersaksham/Github-Achievements
  • stardewvalley-water-bot

    Nasıl Kullanılır

    Günaydın!

    Mahsullerinizi sulama zamanı.

    Sulama Kabınızı çıkarın ve güzel mahsullerinizden herhangi birine sol tıklayın.

    Mahsulleriniz için duyduğunuz sevginin bir mucizesiyle, bir düğmeye bile basmadan geri kalanlarını sulamaya kapılırsınız.

    Sulama kabınızı içgüdüsel olarak doldurmak için daha fazla su otomatik olarak alınır, hala açık bir zihin durumunda olursunuz.

    Herhangi bir düğmeye basarak erken uyanabilirsiniz.

    Endişelenmeyin, sulamaktan bayılmayacaksınız, dayanıklılığınız bitmeden duracaksınız.

    Uygulama

    1. Tetikleyici

    Mod, oyuncunun sağ tıklamasını dinleyerek başlar. Oyuncu sulama kabıyla bir bitkiye tıklıyorsa, bot başlar.

    2. Oyuncunun Çiftliğini Yükleme

    Bot önce çiftlik haritası verilerini tarar, karodan karoya geçerek aşağıdaki özellikleri işaretler:

    Özellik Açıklama
    Sulanabilir Karoya su vermek gerekiyor mu?
    Engel Karo, oyuncunun üzerine yürümesine izin veriyor mu?
    Su Oyuncu burada Sulama Kabını doldurabilir mi?

    Tüm karolar 2D bir diziye yerleştirilir. Sulanabilir mahsuller de kendi dizilerine yerleştirilir.

    Yukarıdaki resim için karolar aşağıdaki gibi renklendirilmiştir:

    Renk Sulanabilir Engel Su
    Yeşil Doğru Yanlış Yanlış
    Koyu Yeşil Doğru Doğru Yanlış
    Turkuaz Yanlış Doğru Doğru
    Koyu Mavi Yanlış Yanlış Doğru
    Kırmızı Yanlış Doğru Yanlış

    3. Gruplanmış Mahsulleri Bulma

    Sulama gerektiren mahsul bulunan karolar, derinlemesine arama kullanılarak bitişiklik bazında gruplanır.

    4. Gruplar Arası Seyahat Maliyeti

    Bot daha sonra bir gruptan diğerine seyahat maliyetini belirlemek için A* yol bulma algoritmasını kullanır.

    Algoritma, her grubun merkezine en yakın karodan başlar.

    Her gruba seyahat maliyeti, oyuncunun mevcut konumundan da hesaplanır.

    Bu bize güzel bir maliyet matrisi verir!

    Oyuncu Mor Sarı Mavi
    Oyuncu -1 11 5 5
    Mor 11 -1 6 8
    Sarı 5 6 -1 6
    Mavi 5 8 6 -1

    Bu noktada ulaşılamayan gruplar dikkate alınmaz.

    5. Seyahat Eden Su Adamı

    Tüm gruplar arasında en kısa yolu bulmamız gerekiyor, başlangıç noktası oyuncunun mevcut konumu.

    Bot, seyahat eden satıcı problemini çözmek için açgözlü bir yaklaşım kullanır.

    Başlangıç noktası oyuncunun konumudur.

    6. Grubu Sulama

    Her grup için derinlemesine arama uygulanarak karolar doldurulur.

    Her karoda, tüm bitişik (artık köşegenler dahil) de sulanır. Bu, her bloğa yürümeyi atlayıp etrafımızdaki her şeyi sulayabileceğimiz anlamına gelir.

    Bir blok üzerine basılamıyorsa, bot en iyi seçeneği seçer ve oradan sular.

    7. Su Bitti!

    Sulama kabı azaldığında, bot en yakın su kaynağına gidip dolum yapar.

    En yakın doldurma noktası, oyuncunun konumundan genişleme araması kullanılarak bulunur.

    Nokta bulunduğunda, bot oyuncuyu suya en yakın noktaya yönlendirir, doldurur ve ardından sulamaya devam eder.

    Visit original content creator repository https://github.com/lixinveritas/stardewvalley-water-bot
  • unicover

    UniCover is a simple command-line tool displaying information about Unicode coverage of system fonts. It should work on systems that utilize Fontconfig (Linux and other Unix-like).

    Dependencies: Python-fontconfig, freetype-py.

    Installation

    In most cases issuing the following command will be sufficient:

    pip3 install --user UniCover

    If you get an error from Python Fontconfig library, try installing its header files first, eg. for Debian or Ubuntu:

    sudo apt install libfontconfig1-dev

    Usage

    Basic usage

    Display all characters contained given font family or font file

    Returns list of characters grouped by Unicode blocks.

    unicover -f 'Liberation Sans'
    unicover -f /usr/share/fonts/TTF/LiberationSans-Bold.ttf
    
    unicover -f 'Liberation Sans' -g    # lists only Unicode blocks
    unicover -f 'Liberation Sans' -o    # omits summary line (total number of characters)

    You can discover what fonts are installed in your system using Fontconfig:

    fc-list : family        # lists font families
    fc-list : file family   # lists font files with families they belong to

    List all system fonts that contain the specified character

    unicover -c ₹
    unicover -c 54f6
    
    unicover -c ₹ -g        # lists only font families
    unicover -c ₹ -o        # omits summary line (total number of fonts)

    System fonts summaries

    Display all Unicode blocks supported by the system fonts

    unicover -g

    List all characters supported by the system fonts

    unicover -l
    unicover -gl            # group characters by Unicode block

    Note: output will be very long.

    Visit original content creator repository
    https://github.com/drastus/unicover

  • sprintf-ext-string

    sprintf-ext-string

    String formatting extension for ‘sprintf-js’

    Overview

    It’s the very experimental module to try the new feature that proposed to
    sprintf-js by me.

    This feature allow to use an user defined type specifiers (any letter) and
    bind such specifier with an user defined function. This function will be called
    inside sprintf to format sprintf arguments according desired specification.
    An additional formatting modifiers may be passed in the sprintf format string if need.

    You can use any existing formatting features of sprintf together with such user defined type specifiers
    (width, precision, padding and aligning). They will be applied to result of user function.

    Getting Started

    Install featured sprintf-js:

    npm install https://github.com/litmit/sprintf.js.git#expandable

    Install this extension:

    npm install sprintf-ext-string

    Now you can code:

    var sprintf = require("sprintf-js").sprintf;
    require("sprintf-ext-string").bind(sprintf);
    
    var user = { name: "DoLly mollY" };
    
    console.log(sprintf("Hello %(name)-11.5S", user));    // --> Hello DOLLY 
    console.log(sprintf("Hello %(name)-11.5[U]S", user)); // --> Hello DOLLY 
    console.log(sprintf("Hello %(name)11.5[l]S", user));  // --> Hello       dolly
    console.log(sprintf("Hello %(name)11.5[]S", user));   // --> Hello       DoLly
    
    console.log(sprintf("Hello %1$[l]S", user.name));     // --> Hello dolly molly
    console.log(sprintf("Hello %1$[C]S", user.name));     // --> Hello DoLly MollY
    console.log(sprintf("Hello %1$[Cl]S", user.name));    // --> Hello Dolly Molly
    
    console.log(sprintf("Hello %[F]S", user.name));       // --> Hello DoLly mollY
    console.log(sprintf("Hello %[f]S", user.name));       // --> Hello doLly mollY
    
    console.log(sprintf("Hello %[Fl]S", user.name));      // --> Hello Dolly molly
    console.log(sprintf("Hello %[fU]S", user.name));      // --> Hello dOLLY MOLLY

    String formatting modifiers

    • %S or %[U]S – now yields a string in UPPER CASE
    • %[]S – yields a string as is (like %s)
    • %[l]S – now yields a string in lower case
    • %[F]S – now yields a string with first letter in Upper case
    • %[f]S – now yields a string with first letter in lower case
    • %[Fl]S – now yields a string with first letter in Upper case and others in Lower case
    • %[fU]S – now yields a string with first letter in lower case and others in uPPER CASE
    • %[C]S – now yields a string with first letter in each word in Upper Case
    • %[Cl]S – now yields a string with first letter in each word in Upper Case and others in Lower case

    See also

    Available extensions for sprintf-js:

    Visit original content creator repository
    https://github.com/litmit/sprintf-ext-string

  • breviews

    bootcampAvenue 🏕️

    bootcampAvenue project

    Instructions

    1. Create a .env inside /breviews-client and nodemon.json file inside /brevews-backend

    2. Inside .env in /breview-client put this

      API_PROD_URL=https://ba-backend.herokuapp.com/api
      API_DEV_URL=http://localhost:5000/api
      
    3. In development inside nodemon.json in /breviews-backend write:

      {
          "env": {
               DATABASE_NAME: askme
               DATABASE_PASSWORD: askme
               DATABASE_USER: askme
          }
      }
      

    Run in Development:

    • from breviews-backend:
    • $ npm install
    • $ npm run install:both
    • $ npm run dev

    Read Important

    • if you new to frontend please use webpack and env variables carefully.

    • Messing them up would mess up whole development and production code 🙂

    • There are several advantages in separating development and production modes

      • Ex: caching, logging, security etc.
    • Currently on backend secret keys coming from nodemon.json file in development.

    • In production keys set on heroku dashboard.

    • Change this behavior to store all prod and dev keys in local and use of libraries like “node-config”, “dotenv” etc.

    Notes

    • keep copyright year 2020

    Features to add

    • login system
    • show all bootcamps (Leave a Review button is not intuitive)
    • server side filter etc for top and remote bootcamps
    • remove Support page
    • improve Search
    • improve rating system

    Visit original content creator repository
    https://github.com/urakymzhan/breviews