Term Project Web Application Development in Django Introduction We now gone through the full cycle in our Python web application development using Django. We’ll now put all the components together,...

Instructions are listed below. I need this assignment completed.


Term Project Web Application Development in Django Introduction We now gone through the full cycle in our Python web application development using Django. We’ll now put all the components together, test, and deploy. SynerD Project Your homepage is similar to the diagram provided in PD2. 1) Public Interface a. When a user clicks on “Members”, a new page should open that allows the user to search a subscriber by ID or a keyword. Note that a subscriber can be an individual or an organization. Refer to the link below for an example page listing all member organizations http://www.sagiusa.org/association-members/ However, your application should also be able to list information about an individual subscriber, not just organizations. b. User Registration Any user should be able to sign up with the portal. When a user clicks on “Join Us”, he/she should be presented a form for providing the information from the UserInfo tab of your spreadsheet. Below are the required inputs : Input Label Database Field Description Validation Username username User’s chosen username · Required field · Must be unique in the database First Name firstname User’s first name Required Middlle Name middlename User’s middle name Not required Last Name lastname User’s last name Required Street Address address1 street address Required Address address2 apt/unit#, etc. Not required City city City of residence Required State state State or province Required Zip Code zipcode zip code Required Email Address email User’s email address Required. Must be a valid email address Home Phone homephone User’s office phone Not required Cell Phone cellphone User’s cell phone Not required Date of Birth dob_day, dob_month, dob_year User’s date of birth Calendar to select date from 2) Web Portal A registered user can be either a staff/officer or a non-officer subscriber. When a registered user signs in, a. if it is a non-officer subscriber, he/she should simply be directed to the home page as we’ll not implement the client portal at this time. b. If it is a staff/officer, he/she should be directed to a Dashboard. From the dashboard, the staff/officer should be able to perform CRUD (create, retrieve, update, delete) operations on the following entities: · Office · Officer · Organization · Organization Member · Subscriber Features 1. The Public Interface The Public Interface must be serviced through a RESTful API. 2. Dashboard The Dashboard can be designed using the Django Admin site. To configuring the Django admin application, you need to: · Create a superuser: python3 manage.py createsuperuser · Register your models For all Django Admin site customizations, refer to https://docs.djangoproject.com/en/2.2/ref/contrib/admin/ We want to customize our interface to: · Add additional fields/information displayed for each record: You can use list_display to add additional fields to the view. · Add filters to select which records are listed, based on date or some other selection value: You filter which items are displayed by listing fields in the list_filter attribute · Choose which fields to display (or exclude), along with their order, grouping, whether they are editable, the widget used, orientation etc.: The fields attribute lists just those fields that are to be displayed on the form, in order. Fields are displayed vertically by default, but will display horizontally if you further group them in a tuple. · Sectioning the detailed view: You can add "sections" to group related model information within the detail form, using the fieldsets attribute. For example, suppose we wish to register the models Subject and Course. Edit the admin.py file inside the app directory and add the following code to it: from .models import Subject, Course @admin.register(Subject) class SubjectAdmin(admin.ModelAdmin): list_display = ['title', 'slug'] prepopulated_fields = {'slug': ('title',)} @admin.register(Course) class CourseAdmin(admin.ModelAdmin): list_display = ['title', 'subject', 'created'] fields = [‘subject’, 'title', (‘created’,)] list_filter = ['created', 'subject'] search_fields = ['title', 'overview'] prepopulated_fields = {'slug': ('title',)} Deployment So far, you have been using the Django development server to run projects in your local environment. However, you need a real web server for deploying your application in a production environment. You will need: Production environment: Let’s stick with the technologies/platforms we’ve assumed throughout our development: Linux OS, MySQL database, and Apache web server. However, you’re free to use other platforms, such as Nginx, Postgree, etc. Hosting Provider Where you host your application is entirely up to you. Providers like Amazon Web Services (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-free-tier.html ), Heroku (https://www.heroku.com/), Microsoft Azure (https://azure.microsoft.com/en-us/pricing/details/app-service/windows/), and Python Anywhere (https://www.pythonanywhere.com/) offer free trials that you can take advantage of. If you don’t mind spending a few bucks for long term use, check out these Django-friendly providers: http://djangofriendly.com/hosts/ Configure your application for deployment Django's primary deployment platform is WSGI. WSGI stands for Web Server Gateway Interface and it is the standard for serving Python applications on the web. When you generate a new project using the startproject command, Django creates a wsgi.py file inside your project directory. This file contains a WSGI application callable, which is an access point to your application. WSGI is used for both running your project with the Django development server, and deploying your application with the server of your choice in a production environment. You can learn more about WSGI at https://wsgi.readthedocs.io/en/latest/. The critical settings that you must check from your project settings.py file are: · DEBUG. This should be set as False in production (DEBUG = False). This stops the sensitive/confidential debug trace and variable information from being displayed. · SECRET_KEY. This is a large random value used for CSRF protection etc. It is important that the key used in production is not in source control or accessible outside the production server. The Django documents suggest that this might best be loaded from an environment variable or read from a serve-only file. Deliverables 1. Technical Report with the following Requirements: Cover Page · Course ID, academic term, academic program, and institution name · Team Identification and Team Members · Project Title: Phase Title · Submission month & year Report/Presentation Contents · Abstract: Provide a snapshot of the problem you were addressing and what you’ve accomplished in your project. Include the URL of your deployed application as well as its GitHub repository address. · Introduction: · Background · Clearly specify the purpose of your project and the desired outcome · Scope of the project · Approach: Layout the approach you've used to achieve your goals · Sequence of presentation: Give the reader a taste of how the report is structured · Sections of the report - Sections 1, 2, 3, …: these are the different sections presenting your work. There should be 9 sections: the first 8 sections correspond to PD1 through PD8; and the last section describe the integration & deployment portion. The following items are of interest in each section: · The objectives and tools used · Description of your work (what you did and how you did it): include screenshots, tables, diagrams, etc. to illustrate your narrative · The last section must include: · The rational for choosing the hosting service used (how did you decide on which hosting provider to use?) · A step-by-step instructions of how you deployed your application; i.e. taking it from the development environment (likely on your PC) to live production (deployment) · Conclusion · What was achieved with respect to the purpose? · What still needs to be done? · Describe the difficulties encountered and how they were overcome · Provide the URL of your deployed application as well as its GitHub repository address. · Appendix must include: · A User Manual · All raw data, transcripts, etc. · References: List websites, books, and any reference material used for your project. 2. A zip file of all your source code (this would be the zip file of your Django project folder) and the database files
Dec 12, 2021
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here