Author: 6mx52w8iwrv8

  • HitokotoStore

    GNU GENERAL PUBLIC LICENSE
                           Version 2, June 1991
    
     Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
     51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
     Everyone is permitted to copy and distribute verbatim copies
     of this license document, but changing it is not allowed.
    
                                Preamble
    
      The licenses for most software are designed to take away your
    freedom to share and change it.  By contrast, the GNU General Public
    License is intended to guarantee your freedom to share and change free
    software--to make sure the software is free for all its users.  This
    General Public License applies to most of the Free Software
    Foundation's software and to any other program whose authors commit to
    using it.  (Some other Free Software Foundation software is covered by
    the GNU Lesser General Public License instead.)  You can apply it to
    your programs, too.
    
      When we speak of free software, we are referring to freedom, not
    price.  Our General Public Licenses are designed to make sure that you
    have the freedom to distribute copies of free software (and charge for
    this service if you wish), that you receive source code or can get it
    if you want it, that you can change the software or use pieces of it
    in new free programs; and that you know you can do these things.
    
      To protect your rights, we need to make restrictions that forbid
    anyone to deny you these rights or to ask you to surrender the rights.
    These restrictions translate to certain responsibilities for you if you
    distribute copies of the software, or if you modify it.
    
      For example, if you distribute copies of such a program, whether
    gratis or for a fee, you must give the recipients all the rights that
    you have.  You must make sure that they, too, receive or can get the
    source code.  And you must show them these terms so they know their
    rights.
    
      We protect your rights with two steps: (1) copyright the software, and
    (2) offer you this license which gives you legal permission to copy,
    distribute and/or modify the software.
    
      Also, for each author's protection and ours, we want to make certain
    that everyone understands that there is no warranty for this free
    software.  If the software is modified by someone else and passed on, we
    want its recipients to know that what they have is not the original, so
    that any problems introduced by others will not reflect on the original
    authors' reputations.
    
      Finally, any free program is threatened constantly by software
    patents.  We wish to avoid the danger that redistributors of a free
    program will individually obtain patent licenses, in effect making the
    program proprietary.  To prevent this, we have made it clear that any
    patent must be licensed for everyone's free use or not licensed at all.
    
      The precise terms and conditions for copying, distribution and
    modification follow.
    
                        GNU GENERAL PUBLIC LICENSE
       TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
    
      0. This License applies to any program or other work which contains
    a notice placed by the copyright holder saying it may be distributed
    under the terms of this General Public License.  The "Program", below,
    refers to any such program or work, and a "work based on the Program"
    means either the Program or any derivative work under copyright law:
    that is to say, a work containing the Program or a portion of it,
    either verbatim or with modifications and/or translated into another
    language.  (Hereinafter, translation is included without limitation in
    the term "modification".)  Each licensee is addressed as "you".
    
    Activities other than copying, distribution and modification are not
    covered by this License; they are outside its scope.  The act of
    running the Program is not restricted, and the output from the Program
    is covered only if its contents constitute a work based on the
    Program (independent of having been made by running the Program).
    Whether that is true depends on what the Program does.
    
      1. You may copy and distribute verbatim copies of the Program's
    source code as you receive it, in any medium, provided that you
    conspicuously and appropriately publish on each copy an appropriate
    copyright notice and disclaimer of warranty; keep intact all the
    notices that refer to this License and to the absence of any warranty;
    and give any other recipients of the Program a copy of this License
    along with the Program.
    
    You may charge a fee for the physical act of transferring a copy, and
    you may at your option offer warranty protection in exchange for a fee.
    
      2. You may modify your copy or copies of the Program or any portion
    of it, thus forming a work based on the Program, and copy and
    distribute such modifications or work under the terms of Section 1
    above, provided that you also meet all of these conditions:
    
        a) You must cause the modified files to carry prominent notices
        stating that you changed the files and the date of any change.
    
        b) You must cause any work that you distribute or publish, that in
        whole or in part contains or is derived from the Program or any
        part thereof, to be licensed as a whole at no charge to all third
        parties under the terms of this License.
    
        c) If the modified program normally reads commands interactively
        when run, you must cause it, when started running for such
        interactive use in the most ordinary way, to print or display an
        announcement including an appropriate copyright notice and a
        notice that there is no warranty (or else, saying that you provide
        a warranty) and that users may redistribute the program under
        these conditions, and telling the user how to view a copy of this
        License.  (Exception: if the Program itself is interactive but
        does not normally print such an announcement, your work based on
        the Program is not required to print an announcement.)
    
    These requirements apply to the modified work as a whole.  If
    identifiable sections of that work are not derived from the Program,
    and can be reasonably considered independent and separate works in
    themselves, then this License, and its terms, do not apply to those
    sections when you distribute them as separate works.  But when you
    distribute the same sections as part of a whole which is a work based
    on the Program, the distribution of the whole must be on the terms of
    this License, whose permissions for other licensees extend to the
    entire whole, and thus to each and every part regardless of who wrote it.
    
    Thus, it is not the intent of this section to claim rights or contest
    your rights to work written entirely by you; rather, the intent is to
    exercise the right to control the distribution of derivative or
    collective works based on the Program.
    
    In addition, mere aggregation of another work not based on the Program
    with the Program (or with a work based on the Program) on a volume of
    a storage or distribution medium does not bring the other work under
    the scope of this License.
    
      3. You may copy and distribute the Program (or a work based on it,
    under Section 2) in object code or executable form under the terms of
    Sections 1 and 2 above provided that you also do one of the following:
    
        a) Accompany it with the complete corresponding machine-readable
        source code, which must be distributed under the terms of Sections
        1 and 2 above on a medium customarily used for software interchange; or,
    
        b) Accompany it with a written offer, valid for at least three
        years, to give any third party, for a charge no more than your
        cost of physically performing source distribution, a complete
        machine-readable copy of the corresponding source code, to be
        distributed under the terms of Sections 1 and 2 above on a medium
        customarily used for software interchange; or,
    
        c) Accompany it with the information you received as to the offer
        to distribute corresponding source code.  (This alternative is
        allowed only for noncommercial distribution and only if you
        received the program in object code or executable form with such
        an offer, in accord with Subsection b above.)
    
    The source code for a work means the preferred form of the work for
    making modifications to it.  For an executable work, complete source
    code means all the source code for all modules it contains, plus any
    associated interface definition files, plus the scripts used to
    control compilation and installation of the executable.  However, as a
    special exception, the source code distributed need not include
    anything that is normally distributed (in either source or binary
    form) with the major components (compiler, kernel, and so on) of the
    operating system on which the executable runs, unless that component
    itself accompanies the executable.
    
    If distribution of executable or object code is made by offering
    access to copy from a designated place, then offering equivalent
    access to copy the source code from the same place counts as
    distribution of the source code, even though third parties are not
    compelled to copy the source along with the object code.
    
      4. You may not copy, modify, sublicense, or distribute the Program
    except as expressly provided under this License.  Any attempt
    otherwise to copy, modify, sublicense or distribute the Program is
    void, and will automatically terminate your rights under this License.
    However, parties who have received copies, or rights, from you under
    this License will not have their licenses terminated so long as such
    parties remain in full compliance.
    
      5. You are not required to accept this License, since you have not
    signed it.  However, nothing else grants you permission to modify or
    distribute the Program or its derivative works.  These actions are
    prohibited by law if you do not accept this License.  Therefore, by
    modifying or distributing the Program (or any work based on the
    Program), you indicate your acceptance of this License to do so, and
    all its terms and conditions for copying, distributing or modifying
    the Program or works based on it.
    
      6. Each time you redistribute the Program (or any work based on the
    Program), the recipient automatically receives a license from the
    original licensor to copy, distribute or modify the Program subject to
    these terms and conditions.  You may not impose any further
    restrictions on the recipients' exercise of the rights granted herein.
    You are not responsible for enforcing compliance by third parties to
    this License.
    
      7. If, as a consequence of a court judgment or allegation of patent
    infringement or for any other reason (not limited to patent issues),
    conditions are imposed on you (whether by court order, agreement or
    otherwise) that contradict the conditions of this License, they do not
    excuse you from the conditions of this License.  If you cannot
    distribute so as to satisfy simultaneously your obligations under this
    License and any other pertinent obligations, then as a consequence you
    may not distribute the Program at all.  For example, if a patent
    license would not permit royalty-free redistribution of the Program by
    all those who receive copies directly or indirectly through you, then
    the only way you could satisfy both it and this License would be to
    refrain entirely from distribution of the Program.
    
    If any portion of this section is held invalid or unenforceable under
    any particular circumstance, the balance of the section is intended to
    apply and the section as a whole is intended to apply in other
    circumstances.
    
    It is not the purpose of this section to induce you to infringe any
    patents or other property right claims or to contest validity of any
    such claims; this section has the sole purpose of protecting the
    integrity of the free software distribution system, which is
    implemented by public license practices.  Many people have made
    generous contributions to the wide range of software distributed
    through that system in reliance on consistent application of that
    system; it is up to the author/donor to decide if he or she is willing
    to distribute software through any other system and a licensee cannot
    impose that choice.
    
    This section is intended to make thoroughly clear what is believed to
    be a consequence of the rest of this License.
    
      8. If the distribution and/or use of the Program is restricted in
    certain countries either by patents or by copyrighted interfaces, the
    original copyright holder who places the Program under this License
    may add an explicit geographical distribution limitation excluding
    those countries, so that distribution is permitted only in or among
    countries not thus excluded.  In such case, this License incorporates
    the limitation as if written in the body of this License.
    
      9. The Free Software Foundation may publish revised and/or new versions
    of the General Public License from time to time.  Such new versions will
    be similar in spirit to the present version, but may differ in detail to
    address new problems or concerns.
    
    Each version is given a distinguishing version number.  If the Program
    specifies a version number of this License which applies to it and "any
    later version", you have the option of following the terms and conditions
    either of that version or of any later version published by the Free
    Software Foundation.  If the Program does not specify a version number of
    this License, you may choose any version ever published by the Free Software
    Foundation.
    
      10. If you wish to incorporate parts of the Program into other free
    programs whose distribution conditions are different, write to the author
    to ask for permission.  For software which is copyrighted by the Free
    Software Foundation, write to the Free Software Foundation; we sometimes
    make exceptions for this.  Our decision will be guided by the two goals
    of preserving the free status of all derivatives of our free software and
    of promoting the sharing and reuse of software generally.
    
                                NO WARRANTY
    
      11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
    FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
    OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
    PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
    OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
    TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
    PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
    REPAIR OR CORRECTION.
    
      12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
    WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
    REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
    INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
    OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
    TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
    YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
    PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
    POSSIBILITY OF SUCH DAMAGES.
    
                         END OF TERMS AND CONDITIONS
    
                How to Apply These Terms to Your New Programs
    
      If you develop a new program, and you want it to be of the greatest
    possible use to the public, the best way to achieve this is to make it
    free software which everyone can redistribute and change under these terms.
    
      To do so, attach the following notices to the program.  It is safest
    to attach them to the start of each source file to most effectively
    convey the exclusion of warranty; and each file should have at least
    the "copyright" line and a pointer to where the full notice is found.
    
        <one line to give the program's name and a brief idea of what it does.>
        Copyright (C) <year>  <name of author>
    
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
        the Free Software Foundation; either version 2 of the License, or
        (at your option) any later version.
    
        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU General Public License for more details.
    
        You should have received a copy of the GNU General Public License along
        with this program; if not, write to the Free Software Foundation, Inc.,
        51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
    
    Also add information on how to contact you by electronic and paper mail.
    
    If the program is interactive, make it output a short notice like this
    when it starts in an interactive mode:
    
        Gnomovision version 69, Copyright (C) year name of author
        Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
        This is free software, and you are welcome to redistribute it
        under certain conditions; type `show c' for details.
    
    The hypothetical commands `show w' and `show c' should show the appropriate
    parts of the General Public License.  Of course, the commands you use may
    be called something other than `show w' and `show c'; they could even be
    mouse-clicks or menu items--whatever suits your program.
    
    You should also get your employer (if you work as a programmer) or your
    school, if any, to sign a "copyright disclaimer" for the program, if
    necessary.  Here is a sample; alter the names:
    
      Yoyodyne, Inc., hereby disclaims all copyright interest in the program
      `Gnomovision' (which makes passes at compilers) written by James Hacker.
    
      <signature of Ty Coon>, 1 April 1989
      Ty Coon, President of Vice
    
    This General Public License does not permit incorporating your program into
    proprietary programs.  If your program is a subroutine library, you may
    consider it more useful to permit linking proprietary applications with the
    library.  If this is what you want to do, use the GNU Lesser General
    Public License instead of this License.

    Visit original content creator repository
    https://github.com/KanModel/HitokotoStore

  • tg-ip-lookup

    Lookup an IP address to find out which public cloud it originates from

    This repository contains python3 code to find out which public cloud an IP address originates from.

    Requirements

    • Python3 (3.11)
    • MaxMind license key (for GeoLite2 ASN database). This database is free subject to license restrictions by MaxMind. Sign up here.
    • see also requirements.txt

    Supported Clouds

    • Amazon Web Services (AWS)
    • Google Cloud Platform (GCP)
    • Microsoft Azure
    • Oracle Cloud Infrastructure (OCI)
    • Hetzner
    • DigitalOcean
    • Linode
    • Tencent
    • OVH
    • IBM Cloud
    • Vultr
    • Scaleway
    • Fly.io
    • Starlink (yes ok, not a cloud but it is up in the clouds right?)

    How it works

    For AWS, GCP, Azure and OCI this looks up the IPs using the publicly published IP ranges by these providers.

    For the other providers it uses the MaxMind ASN database to lookup IP information.

    Internally this is using the ipaddress module in python to do a search through the various CIDR blocks. In future this could be improved if the need arises.

    Install Using Python Pip

    1. pip install tg_ip_lookup
    2. Prepare the database, execute python -c "exec(\"import tg_ip_lookup\ntg_ip_lookup.cloudlookup.loadCloudProviderData.main(\'*MaxMind License Key*\')\")"
    3. Try an IP lookup python -c "exec(\"import tg_ip_lookup\ntg_ip_lookup.main(\'XXX.XXX.XXX.XXX\')\")"

    Manual Setup

    1. Clone this repo: git clone https://github.com/Twingate-Labs/tg-ip-lookup, & switch into directory
    2. Install requirements (virtual env recommended), e.g. pip install -r requirements.txt
    3. Prepare the database python cloudlookup/loadCloudProviderData.py *MaxMind License Key*. The database should be updated regularly (e.g. daily)
    4. Try an IP lookup, e.g. python lookup_ip.py XXX.XXX.XXX.XXX

    Visit original content creator repository
    https://github.com/Twingate-Labs/tg-ip-lookup

  • Sport_Store_Server

    Setup (updating…)

    English

    • Prepare the environment variables as follows

      Variable name Obligatory Description Default
      PORT ❌ Port to listen to (listen) server api 3001
      MONGO_URI ✔ Connection string to connect to MongoDb
      JWT_ACCESS_KEY ✔ Secret key, used in Json Web token (accessToken)
      JWT_REFRESH_KEY ✔ Secret key, used in Json Web token (refreshToken)
      CLOUDINARY_API_KEY ✔ Cloudinary API key to connect to image storage
      CLOUDINARY_API_SECRET ✔ Cloudinary API key (secret key) to connect to image storage
      CLOUDINARY_NAME ✔ Name of Storage Cloudinary for image storage

    Vietnamese

    • Chuáș©n bị cĂĄc biáșżn mĂŽi trường như sau

      TĂȘn biáșżn BáșŻt buộc MĂŽ táșŁ Máș·c định
      PORT ❌ Port để listen (láșŻng nghe) server api 3001
      MONGO_URI ✔ Connection string để káșżt nối tới MongoDb
      JWT_ACCESS_KEY ✔ KhĂła bĂ­ máș­t (secret key), dĂčng trong Json Web token (accessToken)
      JWT_REFRESH_KEY ✔ KhĂła bĂ­ máș­t (secret key), dĂčng trong Json Web token (refreshToken)
      CLOUDINARY_API_KEY ✔ KhĂła key cá»§a API Cloudinary để káșżt nối với storage lưu trữ hĂŹnh áșŁnh
      CLOUDINARY_API_SECRET ✔ KhĂła key (secret key) cá»§a API Cloudinary để káșżt nối với storage lưu trữ hĂŹnh áșŁnh
      CLOUDINARY_NAME ✔ TĂȘn cá»§a Storage Cloudinary lưu trữ hĂŹnh áșŁnh

    Description (updating…)

    English

    Using technologies: NodeJS, Express, MongoDb, Mongoose, jwt-authentication, jwt-authorization, cloudinary

    Server of an ecommerce website with 3 permissions:

    • Admin (full control, can delete anything, in addition can view customer invoice details as well as statistics on everything of the store)
    • Manager (also has the same rights as admin to be able to manage the store, but does not have the right to delete anything that the admin has not allowed)
    • Customer (only has the right to view and buy goods, does not affect the APIs of higher rights (admin, manager)

    Currently the server is still being updated with the necessary functions, the update will be regularly updated here. Thank you!

    Vietnamese

    Sá»­ dỄng cĂĄc cĂŽng nghệ: NodeJS, Express, MongoDb, Mongoose, jwt-authentication, jwt-authorization, cloudinary

    Server của 1 trang web ecommerce với 3 quyền:

    • Admin (toĂ n quyền thao tĂĄc, cĂł thể delete báș„t cứ gĂŹ, ngoĂ i ra cĂł thể xem chi tiáșżt hĂła Ä‘ÆĄn khĂĄc hĂ ng cĆ©ng như thống kĂȘ mọi thứ cá»§a cá»­a hĂ ng)
    • Manager (cĆ©ng cĂł cĂĄc quyền gáș§n giống với admin để cĂł thể quáșŁn lĂœ store, tuy nhiĂȘn khĂŽng cĂł quyền xĂła báș„t cứ gĂŹ mĂ  admin chưa cho phĂ©p)
    • Customer (chỉ cĂł quyền xem vĂ  mua hĂ ng, khĂŽng tĂĄc động gĂŹ đáșżn cĂĄc API cá»§a quyền cao hÆĄn (admin, manager)

    Hiện táșĄi server váș«n đang Ä‘Æ°á»Łc tiáșżp tỄc update cĂĄc chức năng cáș§n thiáșżt, pháș§n cáș­p nháș­t sáșœ thường xuyĂȘn Ä‘Æ°á»Łc update táșĄi đñy. Xin cáșŁm ÆĄn!

    List API (updating…)

    Register Account

    • POST: api/v1/register     —     [content-type: application/json]

    • Request:

      params type require
      firstName string true
      lastName string true
      email string true
      password string true
      avatar string false
      phone string true
      googleId string false
      facebookId string false
      status string false
      isAdmin boolean default false

    • Response:

    {
        "_id": "62ff067d2a6f2d35b72be673",
        "firstName": "Hai",
        "lastName": "Nguyen",
        "email": "a@gmail.com",
        "isAdmin": false,
        "createdAt": "2022-08-19T03:41:49.494Z",
        "updatedAt": "2022-08-19T03:41:49.494Z",
        "__v": 0,
    }
    Login Account

    • POST: api/v1/login     —     [content-type: application/json]

    • Request:

      params type require
      email string true
      password string true

    • Response:

    {
        "_id": "62ff067d2a6f2d35b72be673",
        "firstName": "Hai",
        "lastName": "Nguyen",
        "email": "a@gmail.com",
        "isAdmin": false,
        "createdAt": "2022-08-19T03:41:49.494Z",
        "updatedAt": "2022-08-19T03:41:49.494Z",
        "__v": 0,
        "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYyZmYwNjdkMmE2ZjJkMzViNzJiZTY3MyIsImFkbWluIjpmYWxzZSwiaWF0IjoxNjYwOTAwNDEyLCJleHAiOjE2NjA5MDA0NDJ9.eL8hG06zfvY_aIWfb6uMFtPccNcjj-NYfFpxYoE5v-k",
        "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYyZmYwNjdkMmE2ZjJkMzViNzJiZTY3MyIsImFkbWluIjpmYWxzZSwiaWF0IjoxNjYwOTAwNDEyLCJleHAiOjE2NjA5MDE0MTJ9.Llr9MuSPvRRWhWON1AJnRMSFz457H1ucjWv-_zwWGwc"
    }

    ==> refreshToken is saved in the returned cookie with the key refreshToken

    Refresh Token

    • POST: api/v1/refresh     —     [content-type: application/json]

    • Headers:   [Cookie] : refreshToken

    • Request: null

    • Response:

    {
        "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYyZmYwNjdkMmE2ZjJkMzViNzJiZTY3MyIsImFkbWluIjp0cnVlLCJpYXQiOjE2NjEyMjY1NzQsImV4cCI6MTY2MTIyNjg3NH0.MbnNR9XEA9UKiDbniZK8Uuoff4W7FlHNzTDowmYiETw"
    }
    Logout Account

    • POST: api/v1/logout     —     [content-type: application/json]

    • Headers:   [token] : Bearer {accessToken}

    • Request: Null

    • Response:

    {
        "message": ""
    }
    Get All Users

    • GET: api/v1/user     —     [content-type: application/json]

    • Headers:   [token] : Bearer {accessToken}

    • Request: Null

    • Response:

    {
        {
            "Info user 1": ""
        },
        {
            "Info user 2": ""
        }
    }
    Get A User

    • GET: api/v1/user/:id     —     [content-type: application/json]

    • Headers:   [token] : Bearer {accessToken}

    • Request: Null

    • Response:

    {
        "Info user": ""
    }
    Add User

    • POST: api/v1/user     —     [content-type: application/json]

    • Headers:   [token] : Bearer {accessToken}

    • Request:

      params type require
      firstName string true
      lastName string true
      email string true
      password string true
      avatar string false
      phone string true
      googleId string false
      facebookId string false
      status string false
      isAdmin boolean default false

    • Response:

    {
        "firstName": "Hai Test",
        "lastName": "Nguyen",
        "email": "d@gmail.com",
        "password": "123",
        "isAdmin": false,
        "phone": "14522",
        "_id": "630494af24f33a4ee5cc2340",
        "createdAt": "2022-08-23T08:49:51.091Z",
        "updatedAt": "2022-08-23T08:49:51.091Z",
        "__v": 0
    }
    Update User

    • PUT: api/v1/user/:id     —     [content-type: application/json]

    • Headers:   [token] : Bearer {accessToken}

    • Request:

      params type require
      firstName string true
      lastName string true
      email string true
      password string true
      avatar string false
      phone string true
      googleId string false
      facebookId string false
      status string false
      isAdmin boolean default false

    • Response:

    {
        "message": ""
    }
    Delete User With Params

    • DELETE: api/v1/user/:id     —     [content-type: application/json]

    • Headers:   [token] : Bearer {accessToken}

    • Request: null

    • Response:

    {
        "message": ""
    }
    Delete User With Body

    • DELETE: api/v1/user     —     [content-type: application/json]

    • Headers:   [token] : Bearer {accessToken}

    • Request:

      params type require
      id string true

    • Response:

    {
        "message": ""
    }
    Get All Categories

    • GET: api/v1/category     —     [content-type: application/json]

    • Headers:   [token] : Bearer {accessToken}

    • Request: null

    • Response:

    {
        {
            "Info cate 1": ""
        },
        {
            "Info cate 2": ""
        }
    }
    Get A Category

    • GET: api/v1/category/:id     —     [content-type: application/json]

    • Headers:   [token] : Bearer {accessToken}

    • Request: null

    • Response:

    {
        "Info cate": {
            ...,
            "products": [
                {
                    "infoProduct_1"
                },
                {
                    "infoProduct_2"
                }
            ]
        }
    }
    Add A Category

    • POST: api/v1/category     —     [content-type: application/json]

    • Headers:   [token] : Bearer {accessToken}

    • Request:

      params type require
      name string true
      image string true
      slug string false
      desc string false
      countProduct number false

    • Response:

    {
        "infoCateNew": {}
    }
    Update A Category

    • PUT: api/v1/category”:id     —     [content-type: application/json]

    • Headers:   [token] : Bearer {accessToken}

    • Request:

      params type require
      name string true
      image string true
      slug string false
      desc string false
      countProduct number false

    • Response:

    {
        "message": ""
    }
    Delete A Category With Params

    • DELETE: api/v1/category/:id     —     [content-type: application/json]

    • Headers:   [token] : Bearer {accessToken}

    • Request: null

    • Response:

    {
        "message": ""
    }
    Delete A Category With Body

    • DELETE: api/v1/category     —     [content-type: application/json]

    • Headers:   [token] : Bearer {accessToken}

    • Request:

      params type require
      _id string true

    • Response:

    {
        "message": ""
    }
    Get All Products

    • GET: api/v1/product     —     [content-type: application/json]

    • Headers:   [token] : Bearer {accessToken}

    • Request: null

    • Response:

    {
        "Info product 1": ""
    }
    Get A Product

    • GET: api/v1/product/:id     —     [content-type: application/json]

    • Headers:   [token] : Bearer {accessToken}

    • Request: null

    • Response:

    {
        "Info product": {}
    }
    Add A Product

    • POST: api/v1/product     —     [content-type: application/json]

    • Headers:   [token] : Bearer {accessToken}

    • Request:

      params type require
      name string true
      slug string false
      thumbnail string true
      desc string false
      videoid string false
      pictures string false
      quantity number true
      sold number default 0
      price number false
      category string false
      pictures string false

    • Response:

    {
        "infoProductNew": {}
    }
    Update A Product

    • PUT: api/v1/product:id     —     [content-type: application/json]

    • Headers:   [token] : Bearer {accessToken}

    • Request:

      params type require
      name string true
      slug string false
      thumbnail string true
      desc string false
      videoid string false
      pictures string false
      quantity number true
      sold number default 0
      price number false
      category string false
      pictures string false

    • Response:

    {
        "message": ""
    }
    Delete A Product

    • DELETE: api/v1/product/:id     —     [content-type: application/json]

    • Headers:   [token] : Bearer {accessToken}

    • Request: null

    • Response:

    {
        "message": ""
    }
    Get All NewsOnTop

    • GET: api/v1/newstop     —     [content-type: application/json]

    • Headers:   null

    • Request: null

    • Response:

    [
        {
            "_id": "631b08d63e4ad36bdc96e9d5",
            "name": "The Nike ZoomX Vaporfly NEXT%",
            "desc": "The Nike ZoomX Vaporfly NEXT% clears your path to record-breaking speed with a lighter design and faster feel than before. With more cushioning underfoot and reduced weight up top, the result is unprecedented energy return and comfort",
            "thumbnail": "https://raw.githubusercontent.com/ThaiHaiDev/StoreImage/main/Sport_store/zoomx-vaporfly-next-running-shoe-4Q5jfG.png",
            "bgColor": "blue",
            "picture_item_1": "https://raw.githubusercontent.com/ThaiHaiDev/StoreImage/main/Sport_store/zoomx-vaporfly-next-running-shoe-4Q5jfG-1.jpg",
            "picture_item_2": "https://raw.githubusercontent.com/ThaiHaiDev/StoreImage/main/Sport_store/zoomx-vaporfly-next-running-shoe-4Q5jfG (1).jpg",
            "picture_item_3": "https://raw.githubusercontent.com/ThaiHaiDev/StoreImage/main/Sport_store/zoomx-vaporfly-next-running-shoe-4Q5jfG (2).jpg",
            "picture_item_4": "https://raw.githubusercontent.com/ThaiHaiDev/StoreImage/main/Sport_store/zoomx-vaporfly-next-running-shoe-4Q5jfG (3).jpg",
            "quantity": 100,
            "sold": 0,
            "price": 230,
            "category": {
                "_id": "6304e3a2d459b2475990df4a",
                "name": "Nike",
                "countProduct": 0,
                "createdAt": "2022-08-23T14:26:42.318Z",
                "updatedAt": "2022-09-07T15:32:52.468Z",
                "slug": "nike",
                "__v": 0,
                "products": [
                    "630503ee1e2bdc547c326d62",
                    "63088e792bf82311dc905125",
                    "6318a84d4674de3e1fdaa633"
                ]
            },
            "views": 0,
            "isOutOfStock": false,
            "createdAt": "2022-09-09T09:35:18.251Z",
            "updatedAt": "2022-09-09T09:35:18.251Z",
            "slug": "the-nike-zoomx-vaporfly-next",
            "__v": 0
        },
    ]
    Add NewsOnTop

    • POST: api/v1/product     —     [content-type: application/json]
    • Headers:   [token] : Bearer {accessToken}
    • Request:

    {
        "name": "require",
        "desc": "require",
        "thumbnail": "require",
        "bgColor": "require",
        "picture_item_1": "require",
        "picture_item_2": "require",
        "picture_item_3": "require",
        "picture_item_4": "require",
        "quantity": "require number",
        "price": "require number",
        "category": "require",
        "sold": "no require number",
        "videoid": "no require",
        "views": "no require number",
        "isOutOfStock": "no require boolean"
    }
    • Response:

    {
        "name": "",
        "desc": "",
        "thumbnail": "",
        "bgColor": "",
        "picture_item_1": "",
        "picture_item_2": "",
        "picture_item_3": "",
        "picture_item_4": "",
        "quantity": 100,
        "sold": 0,
        "price": 230,
        "category": "",
        "views": 0,
        "isOutOfStock": false,
        "_id": "",
        "createdAt": "2022-09-09T10:03:36.898Z",
        "updatedAt": "2022-09-09T10:03:36.898Z",
        "slug": "",
        "__v": 0
    }

    Visit original content creator repository
    https://github.com/ThaiHaiDev/Sport_Store_Server

  • projeto-lsor

    Projeto de LSOR

    Descrição

    Projeto desenvolvido para a disciplina de Laboratorio de Redes, do curso de Sistemas de Informação do Instituto Federal de Alagoas.

    Instalação

    Requisitos

    • Kathara
    • Docker

    Topologia

    Topologia

    Instalação

    1. Clone o repositĂłrio
    2. Entre na pasta do projeto
    3. Execute o kathara com o comando kathara lstart

    DHCP e DNS

    dig A squid.admweb.empresa.com.br
    
    dig A dns.admweb.empresa.com.br
    
    dig NS dns.admweb.empresa.com.br
    
    dig A email.admweb.empresa.com.br
    
    dig MX email.admweb.empresa.com.br
    
    dig A samba.admweb.empresa.com.br
    
    dig A www.admweb.empresa.com.br
    
    dig CNAME app.admweb.empresa.com.br
    
    dig A ftp.admweb.empresa.com.br
    

    FTP

    https://linuxize.com/post/how-to-use-linux-ftp-command-to-transfer-files/

    • Para verificar se o ProFTPd estĂĄ rodando:

       ps auwx | grep proftpd
      
       proftpd -v
      
       service proftpd status
      
    • Testes

      • Da mĂĄquina PC utilizando o endereço IP de destino;
          ftp 10.10.10.2
      
          ftp> put /files/1.txt /home/usuario1/1.txt
      
          get 1.txt /tmp/1.txt
      
          ftp ftp.admweb.empresa.com.br
      

    Para acesso EXTERNO, vĂĄ ao terminal do linux:

    sudo apt install net-tools -y
    
    sudo route add -net 10.10.10.0/24 gw 172.17.0.1
    
    sudo route add -net 10.10.10.0/24 gw 10.10.10.1
    
    Visit original content creator repository https://github.com/irfm1/projeto-lsor
  • heartwood

    Visit original content creator repository
    https://github.com/lorenzleutgeb/heartwood

  • InstagramNotifier

    Instagram Notifier

    Instagram notifier is a script that let you launch one bot to notify you about the new activity of the people that
    you maybe want to follow closely.
    For now just supports notifications about new photos polling them every 30 minutes.
    It only notifies the last photo placed, given the time interval.

    Main Features:

    • Notifies many sources of information(people on instagram)
    • Notifies many people(on facebook)
    • One activity can be notified to n persons(on facebook)
    • It handle sensitive information securely

    InstagramNotifier uses two API’s:

    It also uses sqlite3 to save securely some useful data

    All the code follows PEP 8 — Style Guide for Python Code

    General Usage

    Usage:
        instagramNotifier [options] 
    
    Options:
        -u              Add a valid user to the database.
        -f              Add someone to follow closely.
        -n              Add someone to get notified on facebook messenger.
        -r              Run Instagram Notifier.
    

    Installation and Configuration

    1. Clone this repository
    2. Install the requirements $ (sudo) pip install -r requirements.txt
    3. Create the database and add a user:$ python3 instagramNotifier.py -u
    4. Add someone to follow closely on instagram: $ python3 instagramNotifier.py -f
    5. Add someone to get notified: $ python3 instagramNotifier.py -n
    6. Run the bot: $ python3 instagramNotifier.py -r

    Visit original content creator repository
    https://github.com/akaeme/InstagramNotifier

  • Pharo-SQLite3

    Pharo-SQLite3

    Pharo SQLite3

    Unit Tests GLORP Integration Tests Coverage Status

    License Pharo 9 Pharo 10 Pharo 11 Pharo 12

    Standalone SQLite3 database binding for Pharo – community owned

    Quick Start

    Installation

    Metacello new
      repository: 'github://pharo-rdbms/Pharo-SQLite3/src';
      baseline: 'SQLite3';
      load

    a binary of SQlite for Windows is included in the bin folder

    Getting started

    See the getting started document.

    If you want to use glorp see the starting glorp document.

    Project Infos

    History

    The project goes back to a binding to SQLite database for Squeak later ported to Pharo and maintained over time to include new SQLite3 features.

    The full history is described in the history details.

    Roadmap

    • Implement support for SQLcipher. This was available in NBSQLite, the SQLite binding using Pharo 4’s NativeBoost FFI.

    • Implement driver for Voyage.

    Contributors

    Contributors in order of appearance:

    LICENSE

    MIT License

    Migration

    If you want to migrate your code from an older SQLite binding then check the Migration Guide.

    Visit original content creator repository https://github.com/pharo-rdbms/Pharo-SQLite3
  • Docker-Container-RouterOs

    Docker ContainerRouterOs

    This repository contains a Docker container for running x86_64 virtual machines using QEMU. It uses high-performance QEMU options (KVM, and TAP network driver).

    Running RouterOs CHR on docker container

    How to run

    mkdir docker_routeros
    cd docker_routeros
    git clone https://github.com/robiokidenis/Docker-Container-RouterOs.git
    docker-compose up --build -d

    To Check

    docker images
    docker-compose ps
    
    
            Name                   Command           State                                                            Ports
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    docker-compose_chr_1   /routeros/entrypoint.sh   Up      0.0.0.0:1111->1194/tcp,:::1111->1194/tcp, 1701/tcp, 1723/tcp, 21/tcp, 0.0.0.0:2222->22/tcp,:::2222->22/tcp,
                                                             0.0.0.0:12223->23/tcp,:::12223->23/tcp, 443/tcp, 4500/udp, 50/tcp, 500/udp, 51/tcp, 5900/tcp,
                                                             0.0.0.0:12->80/tcp,:::1610->80/tcp, 0.0.0.0:1212->8291/tcp,:::1212->8291/tcp, 0.0.0.0:18728->8728/tcp,:::18728->8728/tcp,
                                                             0.0.0.0:18729->8729/tcp,:::18729->8729/tcp
    
    

    Exposed Ports

                   "1194/tcp": {},
                   "1701/tcp": {},
                   "1723/tcp": {},
                   "21/tcp": {},
                   "22/tcp": {},
                   "23/tcp": {},
                   "443/tcp": {},
                   "4500/udp": {},
                   "50/tcp": {},
                   "500/udp": {},
                   "51/tcp": {},
                   "5900/tcp": {},
                   "80/tcp": {},
                   "8291/tcp": {},
                   "8728/tcp": {},
                   "8729/tcp": {}
              

    link tutorial !

    Thats’s It đŸ€©

    Visit original content creator repository
    https://github.com/robiokidenis/Docker-Container-RouterOs

  • surya-rs

    surya-rs

    Build Crates.io Version

    Rust implementation of surya, a multilingual document OCR toolkit. The implementation is based on a modified version of Segformer, OpenCV, and donut transformer.

    Please refer to the original project for more details on licensing of the weights.

    Roadmap

    This project is still in development, feel free to star and check back.

    • image input pre-processing
    • detection – segformer
    • detection – weights loading
    • detection – heatmap and affinity map
    • detection – bboxes
    • detection – image splitting and stitching
    • recognition – swin encoder
    • recognition – MoE MBart
    • recognition – donut transformer loading
    • benchmark
    • quantifications

    How to build and install

    Setup rust toolchain if you haven’t yet:

    # visit https://rustup.rs/ for more detailed information
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

    Install llvm and opencv (example on Mac):

    brew install llvm opencv

    Build and install the binary:

    # run this first on Mac if you have a M1 chip
    export DYLD_FALLBACK_LIBRARY_PATH="$(xcode-select --print-path)/usr/lib/"
    # run this first on other Mac
    export DYLD_FALLBACK_LIBRARY_PATH="$(xcode-select --print-path)/Toolchains/XcodeDefault.xctoolchain/"
    # optionally you can include features like accelerate, metal, mkl, etc.
    cargo install --path . --features=cli

    The binary when built does not include the weights file itself, and will instead download via the HuggingFace Hub API. Once downloaded, the weights file will be cached in the HuggingFace cache directory.

    Check -h for help:

    Surya is a multilingual document OCR toolkit, original implementation in Python and PyTorch
    
    Usage: surya [OPTIONS] <IMAGE>
    
    Arguments:
      <IMAGE>  path to image
    
    Options:
          --detection-batch-size <DETECTION_BATCH_SIZE>
              detection batch size, if not supplied defaults to 2 on CPU and 16 on GPU
          --detection-model-repo <DETECTION_MODEL_REPO>
              detection model's hugging face repo [default: vikp/surya_det]
          --weights-file-name <WEIGHTS_FILE_NAME>
              detection model's weights file name [default: model.safetensors]
          --config-file-name <CONFIG_FILE_NAME>
              detection model's config file name [default: config.json]
          --non-max-suppression-threshold <NON_MAX_SUPPRESSION_THRESHOLD>
              a value between 0.0 and 1.0 to filter low density part of heatmap [default: 0.35]
          --extract-text-threshold <EXTRACT_TEXT_THRESHOLD>
              a value between 0.0 and 1.0 to filter out bbox with low heatmap density [default: 0.6]
          --bbox-area-threshold <BBOX_AREA_THRESHOLD>
              a pixel threshold to filter out small area bbox [default: 10]
          --recognition-batch-size <RECOGNITION_BATCH_SIZE>
              recognition batch size, if not supplied defaults to 8 on CPU and 256 on GPU
          --recognition-model-repo <RECOGNITION_MODEL_REPO>
              recognition model's hugging face repo [default: vikp/surya_rec]
          --output-dir <OUTPUT_DIR>
              output directory, under which the input image will be generating a subdirectory [default: ./surya_output]
          --polygons
              whether to output polygons json file
          --image
              whether to generate bbox image
          --heatmap
              whether to generate heatmap
          --affinity-map
              whether to generate affinity map
          --device <DEVICE_TYPE>
              device type, if not specified will try to use GPU or Metal [possible values: cpu, gpu, metal]
          --verbose
              whether to enable verbose mode
      -h, --help
              Print help
      -V, --version
              Print version
    

    You can also use this to control logging level:

    export SURYA_LOG=warn # or debug, warn, etc.

    Library

    This lib is also published as a trait for other rust projects to use.

    Visit original content creator repository https://github.com/jimexist/surya-rs
  • Project3-CrimeData

    Project3-CrimeData

    Data Visualization Track

    For this track, your group will tell a story using data visualizations. Here are the specific requirements:

    • Your project must include visualizations. The visualizations can be created with:

      • Python (e.g. Matplotlib, Pandas plotting, hvplot)

      • JavaScript (e.g. Plotly or Leaflet)

      • A Python or JavaScript visualization library that was not covered in class

    • Data must be stored in and extracted from at least one database (PostgreSQL, MongoDB, SQLite, etc).

    • Your project must include at least one JavaScript OR Python library that we did not cover.

    • Your project must be powered by a dataset with at least 100 records.

    • Your project must include some level of user-driven interaction, such as:

      • HTML menus, dropdowns, and/or textboxes to display JavaScript-powered visualizations

      • Flask backend with interactive API routes that serve back Python or JavaScript created plots

      • Visualizations created from user-selected filtered data, which could be powered by:

        • JavaScript libraries

        • Python in Jupyter Notebook

        • Command-line Python scripts that save visualizations locally

        Remember: You have learned how to filter data in Pandas, JavaScript, SQL, SQLAlchemy, and MongoDB.

    • If possible, your final visualization should ideally include at least three views.

    • Your GitHub repo must include a README.md with an outline of the project including:

      • An overview of the project and its purpose

      • Instructions on how to use and interact with the project

      • At least one paragraph summarizing efforts for ethical considerations made in the project

      • References for the data source(s)

      • References for any code used that is not your own

    Project Overview and Purpose

    Our group discussed many different topics to consider and decided there is a considerable amount of data reported on crime in the U.S. We spoke with Jordan Green, Quality Assurance and Accreditation Manager at the Tulsa Police Forensic Laboratory, to see if she had any suggestions on points of interest. She mentioned ever since fentanyl took over the drug scene, meth busts have basically tanked and overdoses have skyrocketed. She was curious when exactly this took place and if it correlated with the emergence of fentanyl in mainstream U.S. She also mentioned a mass shooting data analysis might have a fair amount of data present and suggested comparing instances from 2020 to 2024 as the pandemic has calmed down. However we were concerned there may not be enough datasets for this particular topic, however very interesting. Another topic up for consideration was the overall violent crime trends from the 90’s up until now. She mentioned that violent crimes have gone down considerably even though people say things are dangerous now.

    After much discourse over topic ideas, we landed on comparing drug overdoses from 1999 to 2021, nationwide and in the state of Oklahoma. According to the DEA, “Fentanyl is a potent synthetic opioid drug approved by the Food and Drug Administration for use as an analgesic uh-nal-JEE-zik (pain relief) and anesthetic. It is approximately 100 times more potent than morphine and 50 times more potent than heroin as an analgesic uh-nal-JEE-zik.” The names fentanyl goes by on the street are, “Apace, China Girl, Dance Fever, Friend, Goodfellas, Great Bear, He-Man, Jackpot, King Ivory, Murder 8, Poison, and Tango&Cash.” This drug can be consumed via breathing, smoking, pill or tablet, spiked on blotter paper, patches, combined with other drugs like heroin, and has been identified in fake pills impersonating pharmaceutical drugs like oxycodone. According to the DEA an overdose from fentanyl can, “cause stupor, changes in pupil size, clammy skin, cyanosis, coma, and respiratory failure leading to death. The presence of a triad of symptoms such as coma, pinpoint pupils, and respiratory depression strongly suggests opioid intoxication.”

    In other parts of the country such as Florida and Ohio, Fentanyl was substituted for Heroin where as in Oklahoma Fentanyl was substituted for Methamphetamine. Through our research we found that illicitly manufactured fentanyl (IMF) and pharmaceutical fentanyl (PF) cannot be distinguished between the two. Fentanyl (IMF) is primarily sold by transnational criminal organizations such as the cartel but is also being distributed on the darkweb.

    Questions Asked

    • What counties have the highest death rates due to overdose?
    • What are the average household incomes in the counties with the highest death rate?
    • Were there more men or women deaths reported?
    • What is the age group with the highest reports deaths?
    • In areas with high deaths, see if overdoses from other drugs dropped/increased/stayed the same.

    Interactive Visualization Usage Instructions

    Death by Year – Tree Map

    This tree map is an interactive visualization of drug deaths from 1999-2021. This visualization is interactive, and supplies additional breakdown. In order to interact with this data, all that is necessary is to hover over the section of the graph. The section that is hovered over displays deaths by the specific gender that is being displayed, and this graph is visualized by year. The larger the section of the treemap, the larger the overall number of deaths.

    Death by Year and by Substance

    This is an interactive bar graph with two drop down options. In order to utilize it, you will need to make two selections. The first selection is ‘Year’, and the second selection is ‘Substance’. Once both selections have been made, a new graph will appear. This bar graph shows the number of deaths nationwide for that specific year and that specific substance category. This can be repeated to view any combination of available years and substance categories.

    Oklahoma Drug Deaths by County and Substance

    This is an interactive bar graph with two drop down options. In order to utilize it, you will need to make two selections. The first selection is ‘County’, and the second selection is ‘Drug’. Once both selections have been made, a new graph will appear. This bar graph shows the number of deaths in the state of Oklahoma for that specific county and that specific drug category. This can be repeated to view any combination of available years and substance categories. If no results are available, you will view a response “No results for {OK County Name} – {Drug Name}”

    Analysis and Conclusions

    • Oklahoma and Tulsa County have the highest death rates due to overdoses due to population density. There was no correlation between drug type and county.
    • We were not able to come to a conclusion on the average household incomes based on income due to data limitations regarding ethical concerns.
    • Methamphetamine overdoses dropped/slowed significantly once Fentanyl became popular.
    • Most overdoses happen between the ages of 25-55.
    • CIS Men are more likely to overdose compared to CIS women.
    • Drug overdoses only continue to rise as time persists.
    • We chose to start our datasets from 1999 because that was the beginning of prescription opioid overdose deaths
    • The rise in heroin overdoses occured in 2010.
    • The start of synthetic opioid overdoses such as Fentanyl started in 2013-2014.
    • Illicitly manufactured fentanyl (IMF) is the driving force for opioid overdoses in the U.S. entering through the Southern land border through Mexico.

    How did it get this bad?

    Much of the responsibility for the opioid crisis rests with the pharmaceutical industry’s promotion of aggressive prescribing. A state court in Oklahoma last year found that the “exponentially increasing rates of addiction,” “overdose deaths,” and babies born exposed to opioids were caused by “false, misleading, and dangerous marketing campaigns”. The fact that opioid manufacturers were able to spread false claims on the risks of opioids for the past 25 years points to negligence of the US Food and Drug Administration (FDA).

    The FDA did not properly enforce the Food, Drug, and Cosmetic Act when it approved Purdue Pharma’s new drug application for extended-release (ER) oxycodone in 1995. As Purdue earned billions of dollars from sales of oxycodone, other drug companies took note.

    Overprescribing quickly became rampant. By 2013, enough opioids were prescribed to provide every adult in the country with a full pill bottle.

    Bumps in the Road

    We’ve faced several challenges upon the completion of this project. Listed below are the ones we have documented:

    • Much of the data we found was already formatted such that we couldn’t use it.
    • Deciding what years would be useful for this study was a challenge.
    • We had conflicting Python libraries that were not working together or in our dev environments.
    • The synthetic opioid category combines fentanyl, tramadol, and methodone. However, we found that its very difficult to overdose on tramadol so we were able to rule it out.
    • In some of our data fentanyl was considered synthetic opioid or other opioid depending on the dataset.
    • No specific datasets associated with ethnicities, overdoses, and counties in Oklahoma. (Ethical concerns)
    • We didn’t learn pdAdmin 4 database permissions and user creation in class so its been a challenge.

    Citations

    Instructor: Othmane Benyoucef

    Teacher’s Assistant: Jacob Peroutek

    Advisor: Jordan Green – Quality Assurance and Accreditation Manager at the Tulsa Police Forensic Laboratory

    Contributors: Cory Chapman Houston Amanda Hinkle Katie Starnes Kourtnee Turner Cass Johnnie Allen

    Python Libraries Not used in Class:

    Code References:

    Code snippets regarding suppressing Jupyter Notebook warnings were obtained through ChatGPT assistance and additional online searches on how to best eliminate deprecation warnings without altering the entirety of the code cell.

    Datasets gathered from:

    Wonder.CDC.GOV — The Public Health Service Act (42 U.S.C. 242m(d)) provides that the data collected by the National Center for Health Statistics (NCHS) may be used only for the purpose for which they were obtained; any effort to determine the identity of any reported cases, or to use the information for any purpose other than for health statistical reporting and analysis, is against the law. Therefore users will:

    • Use these data for health statistical reporting and analysis only. Do not present or publish death counts of 9 or fewer or death rates based on counts of nine or fewer (in figures, graphs, maps, tables, etc.). Make no attempt to learn the identity of any person or establishment included in these data. Make no disclosure or other use of the identity of any person or establishment discovered inadvertently and advise the NCHS Confidentiality Officer of any such discovery.

    • Confidentiality Officer, National Center for Health Statistics 3311 Toledo Road Hyattsville, MD 20782 Telephone 888-642-4159 Email: nchsconfidentiality@cdc.gov

    Other Ethical Considerations:

    Privacy must be prioritized to protect victims and their families when conducting research on death rates due to drug overdoses. The accumulation of data must comply with laws such as the Health Insurance Portability and Accountability Act (HIPAA) to protect sensitive information by anonymizing data. Empathy over sensationalism must be prioritized in our analysis to comply with the goal of helping communities and increasing public safety. Language should be chosen in a way that is tactful and avoids stigmatization of victims, allowing for sensitivity and consideration of different perspectives. The statuses “Unreliable” or “Suppressed” death rates in the data from the CDC website, were restricted due to confidentiality constraints, highlighting the importance of respecting individual privacy in agreement with CDC policies.

    Other Sources:

    DEA.GOV

    CDC Florida and Ohio Fentanyl vs Heroin Case Study

    National Library of Medicine

    Ok County Boundaries retrieved from opendatasoft

    “How FDA Failures Contributed to the Opioid Crisis.” Journal of Ethics | American Medical Association, August 1, 2020

    Visit original content creator repository
    https://github.com/ThatCoryGirl/Project3-CrimeData