Univerzita Pardubice Fakulta Elektrotechniky a Informatiky Využití Návrhových Vzorů Při Vývoji Webové Aplikace V PHP

Total Page:16

File Type:pdf, Size:1020Kb

Univerzita Pardubice Fakulta Elektrotechniky a Informatiky Využití Návrhových Vzorů Při Vývoji Webové Aplikace V PHP Univerzita Pardubice Fakulta elektrotechniky a informatiky Využití návrhových vzorů při vývoji webové aplikace v PHP Bc. Richard Fíla Diplomová práce 2019 Prohlašuji: Tuto práci jsem vypracoval samostatně. Veškeré literární prameny a informace, které jsem v práci využil, jsou uvedeny v seznamu použité literatury. Byl jsem seznámen s tím, že se na moji práci vztahují práva a povinnosti vyplývající ze zákona č. 121/2000 Sb., autorský zákon, zejména se skutečností, že Univerzita Pardubice má právo na uzavření licenční smlouvy o užití této práce jako školního díla podle § 60 odst. 1 autorského zákona, a s tím, že pokud dojde k užití této práce mnou nebo bude poskytnuta licence o užití jinému subjektu, je Univerzita Pardubice oprávněna ode mne požadovat přiměřený příspěvek na úhradu nákladů, které na vytvoření díla vynaložila, a to podle okolností až do jejich skutečné výše. Beru na vědomí, že v souladu s § 47b zákona č. 111/1998 Sb. o vysokých školách a o změně a doplnění dalších zákonů (zákon o vysokých školách), ve znění pozdějších předpisů a směrnicí Univerzity Pardubice č. 9/2012, bude práce zveřejněna v Univerzitní knihovně a prostřednic- tvím Digitální knihovny Univerzity Pardubice. V Pardubicích dne 22. 8. 2019 Bc. Richard Fíla PODĚKOVÁNÍ Děkuji vedoucímu, panu Ing. Lukáši Čeganovi, Ph.D. za kvalitní vedení, cenné rady a čas, který mi věnoval při tvorbě této diplomové práce. Dále bych rád poděkoval své rodině, blízkým přá- telům a své ženě za podporu při studiu. ANOTACE V této diplomové práci je prezentována historie a současnost programovacího jazyka PHP. Dále jsou zde ukázány nejznámější PHP frameworky a mikro frameworky. Následně je v této diplo- mové práci obsaženo srovnání těchto frameworků jak mezi sebou, tak i mezi frameworky jiných programovacích jazyků. Další část se zabývá tématikou návrhových vzorů, týkajících se pře- vážně tvroby webových stránek. Na závěr této diplomové práce je popsán podrobný postup při tvorbě vlastního mikro frameworku. KLÍČOVÁ SLOVA Návrhové vzory, MVC, Front Controller, Event Dispatcher, Template View, PHP, framework, mikro framework TITLE Using Design Patterns to Develop a Web Application in PHP ANNOTATION This thesis deals with history and present of programming language PHP. Furthermore, it shows the most famous PHP frameworks and micro frameworks. Comparsion of these frameworks among themselves and between frameworks of other programming languages is included in the thesis. The next part deals with the theme of design patterns. These patterns are mainly related to website creation. At the end of this thesis is described detailed procedure for creating your own micro framework. KEYWORDS Design Patterns, MVC, Front Controller, Event Dispatcher, Template View, PHP, Framework, Micro Framework OBSAH Seznam obrázků ...................................................................................................................... 10 Seznam tabulek ....................................................................................................................... 12 Seznam zkratek ....................................................................................................................... 13 Úvod ......................................................................................................................................... 14 1 PHP .................................................................................................................................. 15 1.1 Charakteristika PHP .............................................................................................. 15 1.2 Historie .................................................................................................................. 15 1.3 PHP 7 .................................................................................................................... 16 1.4 PHP-FIG a PSR .................................................................................................... 17 1.4.1 PSR-1 a PSR-2 .............................................................................................. 19 1.4.2 PSR-3 ............................................................................................................ 20 1.4.3 PSR-4 ............................................................................................................ 20 1.4.4 PSR-14 .......................................................................................................... 21 2 PHP Frameworky ........................................................................................................... 23 2.1 Framework všeobecně .......................................................................................... 23 2.2 Composer .............................................................................................................. 23 2.3 Zend ...................................................................................................................... 24 2.4 Symfony ................................................................................................................ 26 2.5 Laravel .................................................................................................................. 28 2.6 Yii ......................................................................................................................... 29 2.7 Phalcon .................................................................................................................. 29 2.8 Nette ...................................................................................................................... 30 2.9 Srovnání webových frameworků .......................................................................... 30 2.10 Micro Frameworky ............................................................................................... 32 2.10.1 Slim ............................................................................................................... 33 2.10.2 Silex .............................................................................................................. 33 2.10.3 Lumen ........................................................................................................... 33 2.10.4 Flight ............................................................................................................. 34 2.10.5 Srovnání PHP Micro frameworků ................................................................ 34 2.11 Implementace návrhových vzorů ve frameworkách ............................................. 34 3 Návrhové vzory ............................................................................................................... 38 3.1 Návrhové vzory všeobecně ................................................................................... 38 3.2 Návrhové vzory pro webové aplikace .................................................................. 38 3.2.1 MVC ............................................................................................................. 39 3.2.2 Page Controller ............................................................................................. 41 3.2.3 Front Controller ............................................................................................ 41 3.2.4 Two step view ............................................................................................... 43 3.2.5 Template View .............................................................................................. 43 3.2.6 Singleton ....................................................................................................... 44 3.2.7 Adapter .......................................................................................................... 45 3.2.8 Decorator ...................................................................................................... 46 3.2.9 Composite ..................................................................................................... 48 3.2.10 Strategy ......................................................................................................... 48 3.2.11 Observer ........................................................................................................ 49 3.2.12 Builder .......................................................................................................... 51 3.2.13 Mediator ........................................................................................................ 51 3.2.14 Unit of Work ................................................................................................. 52 3.2.15 Dependency Injection ................................................................................... 54 4 MVC Micro Framework ................................................................................................ 56 4.1 Nástroje ................................................................................................................. 56 4.1.1 PhpStorm ...................................................................................................... 56 4.1.2 XAMPP ......................................................................................................... 56 4.1.3 GitHub .......................................................................................................... 57 4.2 Komponenty třetích stran ...................................................................................... 58 4.2.1 Pimple – Dependency Injection Container ................................................... 58 4.2.2
Recommended publications
  • PHP Tech Stack Other Experience Everyday Tools Languages
    Igor Tverdokhleb Work permit: RU+DE the Senior PHP developer who is practicing Location: Hamburg SOLID and designing & implementing scalable systems, that are mostly using ElasticSearch, + 49 (152) 244-15-088 Redis, MySQL & Running on AWS. [email protected] I have a strong point about the application performance. github.com/arku31 arku-cv.com SKILLS PHP Tech stack Daily using - Laravel / Lumen Docker (Expert) Mac -- Eloquent ORM/Migrations Linux (Advanced) PHPStorm -- Events/Listeners apache / nginx / php-fpm CI/CD (usually gitlab) -- Middlewares/Nova mysql / pgsql NewRelic / Datadog - Swoole redis / memcached Blackfire - Phalcon ElasticSearch - Symfony Queues (SQS, Laravel) Languages - Laminas (Zend) - Various libraries Other experience - xDebug Java (Spring) / GoLang (minor) Russian English German - PHPUnit JS + jQuery + Vue.js (minor) native B2+ B1 - PSR / PHPCS WordPress + ACF (advanced) EXPERIENCE EDUCATION Feb 2018 - NOW PHP Developer in AboutYou Gmbh. Hamburg, 2010 - 2014 Orenburg State University Germany. specialty: computers, systems and Phalcon / Laravel / Laminas projects networks development. Mostly working on a cache diploma: A tool to manage layer with usage of Elasticsearch and Redis. customer sales department was written on pure PHP+MySQL and Maj 2016 - Feb 2018 PHP/JS Developer in LOFTSCHOOL LTD, Loftschool group. Saint-Petersburg, Russia. php-gd + dompdf Development and maintaining education 2006 - 2010 Orenburg Information Technologies College platform using Laravel. Implemented e.g. backoffice, flexible discounts, analyzing specialty: Automated systems center and social/payment network diploma: The self-made Linux integrations. distributive booted via PXE network to use on nonHDD Nov 2015 - Maj 2016 PHP Developer in ITLOFT LTD, Loftschool group. workstations with control panel Saint-Petersburg, Russia. using bash scripts + PHP as Have developed over 50 websites, mostly background.
    [Show full text]
  • Security Issues and Framework of Electronic Medical Record: a Review
    Bulletin of Electrical Engineering and Informatics Vol. 9, No. 2, April 2020, pp. 565~572 ISSN: 2302-9285, DOI: 10.11591/eei.v9i2.2064 565 Security issues and framework of electronic medical record: A review Jibril Adamu, Raseeda Hamzah, Marshima Mohd Rosli Faculty of Computer and Mathematical Sciences, Universiti Teknologi MARA, Malaysia Article Info ABSTRACT Article history: The electronic medical record has been more widely accepted due to its unarguable benefits when compared to a paper-based system. As electronic Received Oct 30, 2019 medical record becomes more popular, this raises many security threats Revised Dec 28, 2019 against the systems. Common security vulnerabilities, such as weak Accepted Feb 11, 2020 authentication, cross-site scripting, SQL injection, and cross-site request forgery had been identified in the electronic medical record systems. To achieve the goals of using EMR, attaining security and privacy Keywords: is extremely important. This study aims to propose a web framework with inbuilt security features that will prevent the common security vulnerabilities CodeIgniter security in the electronic medical record. The security features of the three most CSRF popular and powerful PHP frameworks Laravel, CodeIgniter, and Symfony EMR security issues were reviewed and compared. Based on the results, Laravel is equipped with Laravel security the security features that electronic medical record currently required. SQL injection This paper provides descriptions of the proposed conceptual framework that Symfony security can be adapted to implement secure EMR systems. Top vulnerabilities This is an open access article under the CC BY-SA license. XSS Corresponding Author: Jibril Adamu, Faculty of Computer and Mathematical Sciences, Universiti Teknologi MARA, 40450 Shah Alam, Selangor, Malaysia.
    [Show full text]
  • Full Stack Development
    PRESENTED BY: Mazhar K What is a Full Stack ? ● Able to work on front-end and back-end portions of an application. ● Front-end: Portion of an application the user will see or interact with ● Back-end: Part of an application that handles the logic, database interactions, user authentication, server configuration, etc. ● Database: Structured set of data held in a computer, more organized and complex sometimes. Full Stack Developer I define the basic stack as follows: ● HTML ● CSS ● JavaScript ● One general-purpose programming language (Ruby, Python, PHP, etc) ● One relational database system (Postgres, MySQL, Oracle, etc) ● One web server (nginx, Apache, etc) ● One deployment operating system (Ubuntu, CentOS, FreeBSD, etc) ● One version-control system (git. don't bother with the etc) Keys for Full Stack HTML/ CSS ● HTML: HyperText Markup Language ● CSS: Cascading Style Sheets ● Basically called as “building blocks of the web” ● HTML - Allows you to add content to the website ● CSS - Allows you to style your content ● Bootstrap: a framework for helping design and layout content on a page JavaScript ● JavaScript: Most popular language in Full-Stack, Front-end, and Back-end Development. ● Only language that runs natively in the browser, and can double up as a server-side language as well. ● It’s a high-level programing language ● It’s a language that is also characterized as dynamic, weakly typed, prototype-based and multi-paradigm. ● Frameworks: Angular & React ● JSON: JavaScript Object Notation Back-end Language ● Will handle stuff like database operations, user authentication, and application logic. ● Node.js: framework that will aid you in developing web application is Express.
    [Show full text]
  • Modern Web Application Frameworks
    MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Û¡¢£¤¥¦§¨ª«¬­Æ°±²³´µ·¸¹º»¼½¾¿Ý Modern Web Application Frameworks MASTER’S THESIS Bc. Jan Pater Brno, autumn 2015 Declaration Hereby I declare, that this paper is my original authorial work, which I have worked out by my own. All sources, references and literature used or ex- cerpted during elaboration of this work are properly cited and listed in complete reference to the due source. Bc. Jan Pater Advisor: doc. RNDr. Petr Sojka, Ph.D. i Abstract The aim of this paper was the analysis of major web application frameworks and the design and implementation of applications for website content ma- nagement of Laboratory of Multimedia Electronic Applications and Film festival organized by Faculty of Informatics. The paper introduces readers into web application development problematic and focuses on characte- ristics and specifics of ten selected modern web application frameworks, which were described and compared on the basis of relevant criteria. Practi- cal part of the paper includes the selection of a suitable framework for im- plementation of both applications and describes their design, development process and deployment within the laboratory. ii Keywords Web application, Framework, PHP,Java, Ruby, Python, Laravel, Nette, Phal- con, Rails, Padrino, Django, Flask, Grails, Vaadin, Play, LEMMA, Film fes- tival iii Acknowledgement I would like to show my gratitude to my supervisor doc. RNDr. Petr So- jka, Ph.D. for his advice and comments on this thesis as well as to RNDr. Lukáš Hejtmánek, Ph.D. for his assistance with application deployment and server setup. Many thanks also go to OndˇrejTom for his valuable help and advice during application development.
    [Show full text]
  • PHP and Mysql Web Development
    TABEL OF CONTENT 1) PHP Introduction 2) PHP Environmental Setup 3) PHP Syntax Overview 4) PHP Variable Types 5) PHP Constants 6) PHP Operator Types 7) PHP Decision Making 8) PHP Loop Types 9) PHP Arrays 10)PHP Strings 11)PHP Web Concepts 12)PHP Get & Post 13)PHP File Inclusion 14)PHP Files & I/O 15)PHP Functions 16)PHP Cookies 17)PHP Sessions 18)PHP Sending Emails 19)PHP File Uploading 20)PHP Coding Standard 21)PHP Predefined Variable 22)PHP Regular Expression 23)PHP Error Handling 24)PHP Bugs Debugging 25)PHP Date & Time 26)PHP & MySQL 27)PHP &Ajax 28)PHP & XML 29)PHP – Object Oriented 30)PHP -For C Developers 31)PHP -For PERL Developers PHP Tutorial The PHP Hypertext Preprocessor (PHP) is a programming language that allows web developers to create dynamic content that interacts with databases. PHP is basically used for developing web based software applications. This tutorial helps you to build your base with PHP. Audience This tutorial is designed for PHP programmers who are completely unaware of PHP concepts but they have basic understanding on computer programming. Prerequisites Before proceeding with this tutorial you should have at least basic understanding of computer programming, Internet, Database, and MySQL etc is very helpful. Execute PHP Online For most of the examples given in this tutorial you will find Try it an option, so just make use of this option to execute your PHP programs at the spot and enjoy your learning. Try following example using Try it option available at the top right corner of the below sample code box − <html> <head> <title>Online PHP Script Execution</title> </head> <body> <?php echo "<h1>Hello, PHP!</h1>"; ?> </body> </html> PHP - Introduction PHP started out as a small open source project that evolved as more and more people found out how useful it was.
    [Show full text]
  • Vulnerable Web Application Framework
    University of Rhode Island DigitalCommons@URI Open Access Master's Theses 2015 Vulnerable Web Application Framework Nicholas J. Giannini University of Rhode Island, [email protected] Follow this and additional works at: https://digitalcommons.uri.edu/theses Recommended Citation Giannini, Nicholas J., "Vulnerable Web Application Framework" (2015). Open Access Master's Theses. Paper 629. https://digitalcommons.uri.edu/theses/629 This Thesis is brought to you for free and open access by DigitalCommons@URI. It has been accepted for inclusion in Open Access Master's Theses by an authorized administrator of DigitalCommons@URI. For more information, please contact [email protected]. VULNERABLE WEB APPLICATION FRAMEWORK BY NICHOLAS J. GIANNINI A THESIS SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE IN COMPUTER SCIENCE AND STATISTICS UNIVERSITY OF RHODE ISLAND 2015 MASTER OF SCIENCE THESIS OF NICHOLAS GIANNINI APPROVED: Thesis Committee: Major Professor Victor Fay-Wolfe Lisa DiPippo Haibo He Nasser H. Zawia DEAN OF THE GRADUATE SCHOOL UNIVERSITY OF RHODE ISLAND 2015 ABSTRACT Utilizing intentionally vulnerable web applications to teach and practice cyber security principles and techniques provides a unique hands-on experience that is otherwise unobtainable without working in the real world. Creating such applications that emulate those of actual businesses and organizations without exposing actual businesses to inadvertent security risks can be a daunting task. To address these issues, this project has created Porous, an open source framework specifically for creating intentionally vulnerable web applications. The implementation of Porous offers a simplified approach to building realistic vulnerable web applications that may be tailored to the needs of specific cyber challenges or classroom exercises.
    [Show full text]
  • The Dzone Guide to Volume Ii
    THE D ZONE GUIDE TO MODERN JAVA VOLUME II BROUGHT TO YOU IN PARTNERSHIP WITH DZONE.COM/GUIDES DZONE’S 2016 GUIDE TO MODERN JAVA Dear Reader, TABLE OF CONTENTS 3 EXECUTIVE SUMMARY Why isn’t Java dead after more than two decades? A few guesses: Java is (still) uniquely portable, readable to 4 KEY RESEARCH FINDINGS fresh eyes, constantly improving its automatic memory management, provides good full-stack support for high- 10 THE JAVA 8 API DESIGN PRINCIPLES load web services, and enjoys a diverse and enthusiastic BY PER MINBORG community, mature toolchain, and vigorous dependency 13 PROJECT JIGSAW IS COMING ecosystem. BY NICOLAI PARLOG Java is growing with us, and we’re growing with Java. Java 18 REACTIVE MICROSERVICES: DRIVING APPLICATION 8 just expanded our programming paradigm horizons (add MODERNIZATION EFFORTS Church and Curry to Kay and Gosling) and we’re still learning BY MARKUS EISELE how to mix functional and object-oriented code. Early next 21 CHECKLIST: 7 HABITS OF SUPER PRODUCTIVE JAVA DEVELOPERS year Java 9 will add a wealth of bigger-picture upgrades. 22 THE ELEMENTS OF MODERN JAVA STYLE But Java remains vibrant for many more reasons than the BY MICHAEL TOFINETTI robustness of the language and the comprehensiveness of the platform. JVM languages keep multiplying (Kotlin went 28 12 FACTORS AND BEYOND IN JAVA GA this year!), Android keeps increasing market share, and BY PIETER HUMPHREY AND MARK HECKLER demand for Java developers (measuring by both new job 31 DIVING DEEPER INTO JAVA DEVELOPMENT posting frequency and average salary) remains high. The key to the modernization of Java is not a laundry-list of JSRs, but 34 INFOGRAPHIC: JAVA'S IMPACT ON THE MODERN WORLD rather the energy of the Java developer community at large.
    [Show full text]
  • Implementación De Framework De Desarrollo Web Durante Un Proyecto”
    UNIVERSIDAD POLITÉCNICA DE SINALOA PROGRAMA ACADÉMICO DE INGENIERÍA EN INFORMÁTICA Tesina “Implementación de Framework de desarrollo web durante un proyecto” Para obtener la acreditación de las estadías profesionales y contar con los créditos para el grado de Ingeniero en Informática. Autor: Bernal Corral Daniel Asesor: M. C. Alejandro Pérez Pasten Borja Asesor OR: Ing. Omar Vidaña Peraza Mazatlán, Sinaloa 13 de Diciembre del 2019 Agradecimientos Agradezco a mis padres por brindarme todo su apoyo durante mis estudios, por darme las clases más importantes, por haber hecho posible que llegara a este momento, por enseñarme que no siempre todo sale perfecto y que debo esforzarme para obtener lo que quiero, por darme ánimos para seguir, por preocuparse por mí y esforzarse para que mi vida fuera mejor. A mi asesor por aconsejarme y corregir los errores que cometí durante el desarrollo de la tesina, por tomarse el tiempo para ver cada detalle y hacer recomendaciones, sugerir opciones, etc. A mi hermano por ayudarme a no rendirme, por asumir su rol de hermano mayor y tratar de guiar, por preocuparse por mí y ayudarme siempre que lo he necesitado. A los profesores que he tenido a lo largo de mis estudios y que me aportaron un poco de su conocimiento para enriquecer el mío. A todos mis compañeros que me ayudaron a hacer más amenas las clases. 6 ÍNDICE TEMÁTICO Índice de imágenes. 9 Resumen. ….. .11 Abstract. …. .11 Introducción. 11 Capítulo I. .. ... …12 1. Antecedentes. .. 13 1.1. Localización. .. ….. 13 1.2. Objetivos de la institución. …………….. 13 1.3. Visión. .14 1.4.
    [Show full text]
  • Headless Toolkit: 14 Essential Tools for the Future of Composable Commerce
    Headless toolkit: 14 essential tools for the future of composable commerce Authors: Tom Karwatka, Piotr Karwatka, Bartosz Picho, Damian Kłaptocz, Bartłomiej Loc, Piotr Znamirowski, Kacper Cebo Introduction Headless toolkit: 14 essential tools for the future of composable commerce We see that the eCommerce software monoliths are starting to crumble. We’ve been working with eCommerce platforms for more than 12 years at Divante, and we see the competition getting fiercer with every year. The fast-paced eCommerce world is a ruthless test for any tech bottlenecks and weak spots. It can quickly push you to the wall where your old software gets stuck against your budget, just like the Ever Given container ship in the Suez Canal. The headless approach is an answer to those problems. It replaces a complex picture with puzzle pieces that you can quickly move around, plug them in and out, and seamlessly replace if necessary. It gives you the maneuverability to pursue constant optimization, ambitious business results, and new trends. This eBook will introduce you to new and prospective technologies for the upcoming years. It presents a set of proven headless tools that have been on Divante’s radar for some time and are steadily growing in popularity. Introduction We’ve tried them out so you don’t have to go through each solution one by one. It’s all in here. It consists of three chapters that start with the initiation of the project and follows through to the headless technology: ■ What comes next: Composable commerce An introduction by Tom Karwatka that presents our vision for the composable future.
    [Show full text]
  • Python Guide Documentation 0.0.1
    Python Guide Documentation 0.0.1 Kenneth Reitz 2015 11 07 Contents 1 3 1.1......................................................3 1.2 Python..................................................5 1.3 Mac OS XPython.............................................5 1.4 WindowsPython.............................................6 1.5 LinuxPython...............................................8 2 9 2.1......................................................9 2.2...................................................... 15 2.3...................................................... 24 2.4...................................................... 25 2.5...................................................... 27 2.6 Logging.................................................. 31 2.7...................................................... 34 2.8...................................................... 37 3 / 39 3.1...................................................... 39 3.2 Web................................................... 40 3.3 HTML.................................................. 47 3.4...................................................... 48 3.5 GUI.................................................... 49 3.6...................................................... 51 3.7...................................................... 52 3.8...................................................... 53 3.9...................................................... 58 3.10...................................................... 59 3.11...................................................... 62
    [Show full text]
  • Lead PHP Developer (M/F) in Frankfurt Am Main and Seville
    Lead PHP Developer (m/f) in Frankfurt am Main and Seville You have gained relevant experiences developing scalable online solutions, for instance a new airline booking platform, a global e- learning solution for a pharmaceutical company or a website of a consumer goods manufacturer’s international brands? As a true team player, you can always see the bigger picture? You are the perfect interface between Project Management and Dev Team? You are both encouraged and motivated by a tight schedule and complex requirements? Let’s talk business: About us: We, an agency for marketing, IT & Experience Design with 180 employees and offices in Frankfurt, Geneva, Cologne and Seville. For our team in Frankfurt, we are currently looking for a Lead PHP developer (m/f), who enjoys to actively co-develop and immerse into codes, whilst being able to take the technological project lead and therefore, function as the interface between Project Management and developers. You: Possess an excellent PHP developer know-how, ideally having good Drupal, Symfony, MySQL (or frameworks based on Symfony, such as Silex, Laravel, etc.) skills Are familiar with concepts of test-based development, BDD, Clean Code, Continuous Integration (Jenkins) and deployment processes Enjoy agile and dynamic processes, shorter release cycles and a close cooperation with the Project Management Are part of a creative team, being responsible for all Software Development aspects – from first requirement acquisition to development, testing and launch Have impressive communication skills,
    [Show full text]
  • Singkat: a Keyword-Based URL Shortener and Click Tracker Package for Django Web Application
    (IJACSA) International Journal of Advanced Computer Science and Applications, Vol. 9, No. 9, 2018 Singkat: A Keyword-Based URL Shortener and Click Tracker Package for Django Web Application Gottfried Prasetyadi, Utomo Tri Hantoro, Achmad Benny Mutiara Faculty of Computer Science and Information Technology Gunadarma University Depok, Indonesia Abstract—In recent years, Python has been gaining popularity template (MVT) architectural pattern, which enables code reuse as web scripting/programming language. In this research we and modularity of features and functions [6]. propose Singkat, an open source uniform resource locator (URL) shortener package with web user interface built using Python- Singkat is aimed to be a highly customizable URL based Django web framework. It can be deployed and customized shortener module alternative for web applications built using in any web project based on Django framework. This makes sure Django, with complete user features for a basic deployable that administrators can gain control over data in their own package, such as web user interface, shortening using pseudo environment. Users can create shortened links using base62 random and user-chosen keyword, and clicks statistics. The values to generate pseudo random keyword. To minimize name „Singkat‟ is taken from Indonesian, which means short, phishing and other abuses, only registered users can create brief, or concise. This research centered on algorithm and shortened link using their chosen keyword, and it is possible to performance of Singkat, especially its model object, harnessing preview a link before accessing it. Registered users can also Python scripting language. monitor each click and get useful information. We also ran some tests to measure Singkat’s performance and functionality.
    [Show full text]