• Tidak ada hasil yang ditemukan

Developing and Publishing a Date-picker Calendar Package for Websites Powered by Django

N/A
N/A
Protected

Academic year: 2023

Membagikan "Developing and Publishing a Date-picker Calendar Package for Websites Powered by Django"

Copied!
77
0
0

Teks penuh

This is to certify that the project report on Development and Publishing of a Date Picker Calendar Package for Yllehsites Powered by Django was carried out by Md. Abdul Monim, lD student: CSE student of Department of Computer Science and Engineering, Sonargaon University (SU) as a partial fulfillment of CSE-400 ProjectUThesis requirement. The report was prepared under my direction and is a record of good faith work successfully carried out.

To the best of my knowledge and according to his statement, no part of this report has been submitted anywhere for any degree, diploma or certificate. Abdul Monim, Student, Department of Computer Science and Engineering, Sonargaon University (SU) who stated that this project paper on the given topic was prepared only for the fulfillment of CSE400 Project/Thesis, in partial fulfillment of 'Bachelor of Computer Science' and Engineering ". Monzurul Amin lfath, Lecturer, Department of Computer Science and Engineering, Sonargaon University, who gives me the opportunity to complete my report and project.

Furthermore, I would like to thank him again for giving me the opportunity to submit this report. I would also like to thank our Mce Chancellor Professor M.A Razzaque who gave us the opportunity to study in such a decent environment.

Introduction of Project -

System Study &Analysis

SystemAnalysis

Most of the django widgets available in the open source market are outdated, very few of them support django version 2.0 and above. Providing date picker and date+time picker widgets, including some additional features that encapsulate most of the requirements that a developer could ever eliminate while keeping the package scalable for development. Providing data-rang+picker functionality out of the box and thus eliminating the need for any additional packages or writing patch codes to package sources.

None of the existing packages support the latest versions of Django, most of them are limited to a specific older version of Django. The r/django community appreciates the development of a project that can help thousands of django developers around the world. _calculate_options is an internal method that calculates user-supplied date picker options and overrides the default options.

So we will import the DatePickerlnput classes into the _init .py file to make it accessible outside the package. The README should contain the following information to reflect the important aspects of the package.

Figure  1.2:  Agile  Methodology  work_flow l:
Figure 1.2: Agile Methodology work_flow l: ''!'orks by breaking projects

Methodology of the project

Advantages ofAgile model

Listed below are a few disadvantages ofAgile

Existing System

Use existing obsolete django-packages

Include the package in the Django package index to make it more available to developers specific to Django development. The package should be hosted on PyPl so it can be easily installed with a simple pip command. The package should provide reasonable flexibility and flexible options to change according to the needs of the project.

The package will be uploaded to PyPl to make it publicly available, which can be installed via pip with a simple command. But this package includes fallbacks for django versions older than 1'11'. The following templates are included in the package, which can be expanded as needed. The package is written in Python 3 and supports every latest version of django including older django versions back to 1.8.

The package can be used with any server capable of running a smooth running djange powered site. Give the package a unique name that is self-explanatory and search-friendly 3- Upload and maintain different versions of the package with proper dependencies.

Figure  3.2: Reddit post on the project
Figure 3.2: Reddit post on the project
  • lPrablems with Existing django.widgets
    • Advantages over Primitive System
    • Advantages over Existing Packages
    • Drawbacks of the Proposed System
  • Why develop this django-package
    • Absence of the right product
  • l.1What is a complete package
    • Developer's demand
    • Community appreciation
  • Proposed System Design

Implementation of Model

  • URL dispatcher
  • Form
  • Form Fields
  • Widgets
  • Request-Response flow of django date-time fields with django-bootstrap-datepicker-p1us
    • DateTimePickerlnput c1ass
  • ZTimePickerlnput c1ass
    • MonthPickerlnput c1ass
    • YearPickerlnput c1ass
  • Components of wid9et............. ...........2g
  • System Requirements
    • Software Requirements
    • Hardware Requirements

The widget handles rendering .. of the HTML and extracting data from a GET/POST dictionary corresponding to the widget. The Media class of DatePickerlnput contains the list of atl JavaScript and CSS resources needed to include in the HTML output. The start:of method takes the event ID of an event to create the link-up between two DatePickerlnputs and sets the DatePickerlnput as the start date of the event.

The end-of method takes the event_id of an event to create association between two DatePickerlnputs and sets the DatePickerlnput as the end date of the event. The package is published online on both Github and PyFl package index and thus available for django developers to implement in their django power# sites. There are some bugs present in the date'picker library used to render the Ul.

Figure  4.1: django  Request-Response flow
Figure 4.1: django Request-Response flow

System Implementation

The DatePickerDictionary

The options property holds the options that are passed directly to the JavaScript datepicker instance.

Figure 5.2: The PYPI page of the package
Figure 5.2: The PYPI page of the package

The DatePickerBaselnput c1ass

Including the resources

Date format conversion between JavaScript and $rthon

Methods to link two date-picker

Extending the base class to DatePickerlnputs

  • Define properties of the sub-classes
  • Exporting the DatePickerlnput C1asses................. ..............3g
  • Objectives

The Python Package lndex (PyPl) is a softvyare repository for the Python programming language. PyPl helps find and install software developed and shared by the Python community. Django Packages is a directory of reusable apps, sites, tools and more for your Django projects. This directory contains a huge collection of reusable django resources that passionate developers can find and implement in their own projects.

Note that many of these tools are also used for integration testing by writing the test cases to execute multiple parts of the code at the same time. Travis Cl is a hosted, distributed continuous integration service used for building and testing software projects hosted on GitHub. Similar code blocks - Duplicate code that is not identical but shares the same structure (for example, variable names may differ).

The project received 39 stars and this number continues to grow as more and more developers discover this package. Mostly, forks are used to either propose changes to someone else's project or to use someone else's project as a starting point for your own idea. The visitor count keeps increasing as days pass proving that the project is reaching more and more developers making this project a success.

There are 12 stack overflow questions about this project, all asked by django developers who had trouble deploying this package to their django-powered site. These questions provided a lot of information to help make the project more user-friendly and easier to implement. This activity on stack overflow shows that this package is gaining traction, more and more developers are interested in using it in their own project.

This answer was posted encouraging the use of this package on the django page by describing its installation configuration and usage, which has received 5 votes from community members. This shows that developers are really appreciating this package as a useful tool for their django sites. Development of a Ul like watch for my dialer+ that looks neater and provides easier time selection.

Publishing to PyPI

  • Objectives

Publishing to Django Packages

  • Objectives

No matter how good the product is, we always judge a book by its cover. Hypothesis is a unit test generation tool that helps developers create tests that run edge cases in blocks of code. A program with high test coverage, measured as a percentage, had more source code executed during testing, indicating that it is less likely to contain undetected software bugs compared to a program.

The usefulness and quality of a project is reflected by these stars provided by the developers who are using it.

Fublish Demo Pages

  • Demo with Bootstrap 3
  • Demo with Bootstrap 4

Publishpackage documentation (README).............. ...........M

  • Demo, Getting Started
  • Usage
  • Customising the Options
  • Licence and Acknowledgements

Maintainability is an assessment of technical debt in a repo based on a standardized 10-point assessment of duplication, cyclomatic complexity, cognitive complexity, and structural problems.

Figure  6.
Figure 6.'t: pytest unit-test results

Testing & Quality Management

Unit-Testing with Travis.Cl

  • Travis-Cl build flow
  • Travis-Cl Result
  • Travis-Cl build history

Code-Coverage

  • Coveralls.io stats

Maintainability

  • Code-Climate Report

These are the developers who are currently monitoring this repository for immediate notification of any updates posted to this repository. Publishing a well-respected project to the largest online Github community and maintaining a significant approval history.

Project Success

Watchers

  • Clone Graph

Activity on Stack-Overflow

  • Questions on Stack-Overf1ow
  • Answers on Stack-Overflow

Conclusion

Future Wbrk

Conclusion

Gambar

Figure 1.1: Stages of System  Analysis
Figure  1.2:  Agile  Methodology  work_flow l: ''!'orks by breaking projects
Figure  3.2: Reddit post on the project
Figure  4.1: django  Request-Response flow
+7

Referensi

Dokumen terkait

Cuộc đấu tranh bảo vệ độc lập, chủ quyền của các nước đang phát triển hiện nay Ngày nay, cuộc đấu tranh bảo vệ độc lập, chủ quyền của các nước đang phát triển tuy có nhiều khó khăn