” 辅导CSS编程、 写作Java程序设计Web Application Development 2Group Project Web App (25%)IntroductionThe WAD2 Project is mainly based on the development of a web application of yourchoosing. Your web application should be developed using Python, Django, HTML, CSS andassociated technologies including Javascript, JQuery and AJAX.Implementation of your web app should draw on the skills built up during the development ofRango. Teams are free to use their own ideas, however there are some basic expectations: the app should involve user authentication; it should certainly interact with some kind of model stored in a database; it should be visually appealing and have an intuitive user interface; overall the functionality Supported should be rich enough in order to allow you todemonstrate an understanding of the technologies listed above.Beyond these guidelines, it is up to you, though if you do need some ideas, the followingsection lists some example projects from previous years.Example project ideas from previous years Rate My Beardo Users with beards can upload Photos inviting feedback; other users can login, viewphotos and give feedback GU Grub Guideo Users can leave ratings for Restaurants and view other users ratings UnNoobMeo Students seeking private tutors and tutors seeking clients are allocated to each other Does my MSP Represent Me?o Users can find out information about how their MSP is voting in Parliament TripShareo Users can post information about their upcoming trips, browse / search for trips andrequest to join a specific trip Bargain Radaro Small businesses can post their discounted deals; customers can browse deals andadd them to baskets SHAKESbeero Allows users to contribute cocktail recipes; users can browse and search over, andrate and comment on, cocktails FilmBooko Users can login and Browse, search and rate movies; film producers can login andupload new films so that they can be rated Federated Health Search Applicationo People find out about particular conditions and to save the information that they findinto different folders. The app lets people search across two different medical sites Zombie Survivalo A game of search and survival. The web application needs to interface with a series ofclasses that create the world in which the player needs to survive.The last two projects are described in more detail in Appendix 2.3Working in a teamYou should think about how the tasks associated with the development of your teams webapp should be divided. Try to ensure that activities are assigned so that every member of theteam can be involved at all times. Here is a possible breakdown of responsibilities for a fourpersonteam (this is just an example and you should feel free to organise things differently ifyou prefer. Remember, Contributions can also be balanced with earlier design work and theforthcoming presentation):1. user authentication, unit testing2. models, Javascript, AJAX3. views and URLs4. templates and CSSWhat should be submittedYou should host your application on PythonAnywhere and also ensure that the latest versionof the code is stored in a public GitHub repository. The URLs for both of these locations willneed to be submitted. You should ensure that your final application addresses the followingrequirements:Deployment Application is deployed via PythonAnywhere and runs from there Requirements file is included and contains the correct packageso Within your main project folder you should include a file called requirements.txt thatcan be used to install the relevant packages within a newly-created virtual environmentusing pip install r requirements.txt. You can create this file easily using pipfreeze requirements.txt. Database / migrations files not includedo You should delete your database and migrations files so that when your tutor works ondeploying your application on his/her local machine, the database can be recreatedfrom scratch by making the relevant migrations and running your population script. Population script works and contains useful example datao Create a population script Called population_script.py with enough relevant data inyour main project folder. Application can be deployed on markers own machineFunctionality Main functionality has been implemented (hopefully reflecting the design)o Here you should refer back to your design specification to guide development towardsproviding functionality consistent with what was envisaged.o If you have used external sources, you should acknowledge them in a README file inthe top-level folder of your project. Failure to acknowledge external sources couldresult in a deduction of marks under the main functionality heading.o Although there are marks available for deploying your application on PythonAnywhere,the main functionality will be checked with respect to the version that your tutordeploys locally (i.e., the version on localhost). Application is bug-free / no error messages occuro The user should be able to access all of the functionality of the application withoutencountering Django error messages. You should thoroughly test your application toensure that this is the case. Application includes some Javascript / JQuery / AJAXo Your application should not Be based solely on Python and Django, and there shouldbe evidence of usage of one or more of some of the technologies covered later in thecourse including Javascript / JQuery / AJAX.4Look and Feel Polished / refined interface, not clunky Uses a responsive CSS frameworko CSS can be quite fiddly to help with the layout and appearance of your web pagesyou are recommended to use a CSS framework such as Bootstrap. If browser window size changed, is the change handled neatly?o In the Look and Feel category, marks are available for an attractive and intuitive userinterface with good use of CSS.Code Templates inherit from base URLs are relative, i.e., use the {% url ..%} tag Code contains helper functions/classes (if required) Code is readable, clear and commented where appropriate CSS and Javascript are kept separate from templates (i.e., not inline) No repetition of code blocks in the views or templates Unit tests are includedo In the Code category, marks are available for well-organised code, adhering to theprinciples that you will have learned during the development of the Rango app.A sample marking scheme is included in Appendix 1.Use of external sourcesIt is recognised that you may use external sources (e.g., Bootstrap) when developing yourapplication. However these must be acknowledged when you submit (see below).How to submitAfter developing your web application you should host it on PythonAnywhere and ensurethat the latest version of your code has been pushed to your teams GitHub repo.One member of the team should then submit a one-page document via the Projectsubmission icon on the Moodle page for the course, containing the following information: Name of web application Lab group number and team letter (e.g., Lab group 4, Team B) Team members (names and student numbers) GitHub URL for the app PythonAnywhere URL for the app Any external sources used (code, libraries, APIs), if applicable.The person making the submission will be required to complete a Declaration of Originalityon behalf of all team Members when submitting via Moodle. If you have used any externalsources, be sure to acknowledge them in your one-page document. For reference, theSchools plagiarism policy is contained in Appendix A of the Undergraduate Class Guide.5Appendix 1: Sample marking schemeThe following marking scheme is intended to give a broad indication as to how marks will beapportioned. The actual marking scheme used in practice may deviate slightly from this.Category MarksDeploymentApplication is deployed via PythonAnywhere and runs from there 4Requirements file is included and contains the correct packages 2Database / migrations files not included 1Population script works and contains useful example data 3Application can be deployed on markers own machine 3FunctionalitySite core functionality an ambitious project has been undertaken 12Application is bug-free / no error messages occur 3Application includes some Javascript / JQuery / AJAX 5Look and FeelPolished / refined interface, not clunky 6Uses a responsive CSS framework 3If browser window size changed, is the change handled neatly? 1CodeTemplates make use of inheritance 3URLs are relative, i.e., use the {% url ..%} tag 2Code is readable, clear and commented where appropriate 3CSS and Javascript are kept separate from templates (i.e., not inline) 1No repetition of code blocks in the views or templates 3Unit tests are included and are comprehensive, including testing views 5Total 60The total mark will be converted to a band which will be the teams mark for this componentof the assessment.6Appendix 2: Example projects from previous yearsIn a previous year, there were four fixed project ideas and each team was required to selectand work on one of those four. Specifications from two of these are provided below. Thesecan help provoke your own ideas, and provide an example of the expected scope andcomplexity of the apps to be created in the project.Note that these are examples to illustrate sample ideas and that diagrams etc mightnot be in the required format for any of your submissionsFederated Health Search ApplicationDescription: The purpose of this application is to help people find out about particularconditions and to save the information that they find into different folders. The applicationlets people search across two different medical sites (medline and healthfinder) and thegeneral web (bing). People using the application would like to self-diagnose, i.e. given somesymptoms find out what are the likely conditions. They would also like to find out informationabout particular conditions, treatments and medicines.Specifications:Searchers need to be able to: create an account and profile edit, update and maintain their profile create a category (where they can save pages that they found) save pages that they find during the process search for conditions, treatments, medicines. share a list of links (via a category)o links and categories should be private, unless shared.The search interface should provide: a mash up of results from the three search verticals tabs to enable access to the individual search verticals results should be annotated in terms of source (which vertical) a list of user defined categories should be available to select and browse an easy mechanism to save results to categories inline query suggestions to help uses with tricky words and spellingWhen results are saved, the page should be fetched and stored. The readability of the pageshould be calculated, using TextStats Flesch Reading Ease Score. The polarity andsubjectivity of the text should also be calculated, using TextBlob.When looking at saved pages, the searcher should be able to see the title of the page, thesummary, the source, url, the reading score, polarity score and subjectivity score.The APIs for the federated search are: https://healthfinder.gov/developer/How_to_Use.aspx httpss://www.nlm.nih.gov/medlineplus/webservices.html httpss://datamarket.azure.com/dataset/bing/searchAdditional resources: httpss://pypi.python.org/pypi/textstat/0.1.4 httpss://pypi.python.org/pypi/textblob/0.11.0High level system architecture diagram:7HealthFinder, Medline and Bing are all external APIs. To provide some clarity I have split outthe Search component that will interface with these APIs. And then my middle ware will usethis service.ER diagram:Searcher(username, password, email)Category(user, name)Page ( category, title, summary, url, flesch_score, polarity_score, subjectivity_score)Zombie Survival: A Game of SearchDescription: The purpose of this web application is to provide the frontend interface for agame of search and survival. The web application needs to interface with a series of classesthat create the world in which the player needs to survive.The game is as follows:A player starts on day one of the zombie apocalypse. Their goal is to survive as long aspossible (as measured by the number of days).Their party size is 1. They have 3 units of food and 2 units of ammunition.They enter a street. A street contains a number of houses. Each house has a number ofrooms.A room may contain other survivors, zombies, food and/or ammunition.The player has a number of moves.8On the street:(1) a player can choose which house they enter.In a house:(1) enter room(2) move to next room(3) leave houseIn a room:(1) search room(2) leave room(3) if zombies are present, they can fight or run.a. if they run, they leave the house and return to the streetb. if they fight, they might lose the fight (lose party members), or win, inwhich case they claim whatever is in the room (survivors, food, ammo)c. the number of zombies killed is countedThe game mechanic for win/loss is based on the number of zombies, the amount ofammo and the size of the party.During a day, the player has X units of time. Each action costs time. The day ends whenthey run out of time. At the end of the day, the game mechanic, decreases the amount offood depending on the size of the party. If there is not enough food, then party membersmight leave. Party size and Food is updated, then they start the next day.The web application needs to provide the following functionality.Specifications:Players need to be able to: create an account and profile view, edit, update and maintain their profile start a game and return back to a game in progress. Play the game according to the mechanics described above View the leaderboardVisitors to the site: Need to be able to view the leaderboard Read the instructions of the game Be able to registerThe profile contains the players handle/username and picture along with how many gamesthey have played, their average and best number of days survived and zombie kills. Theprofile also lists the badges that the player has achieved.Badges: there are 4 badges with different levels (bronze, silver, gold): (i) Survival: survived5, 10 and 20 days. (ii) Killer: killed 10, 20 and 50 zombies in one game. (iii) Stamina: played5, 10 and 20 games, (iv) Party: had a party size that contained 10, 20, 40 people.Leaderboard: there are two leaderboards: (i) top 20 players based on days survived, (ii) top20 players based on zombie kills.As the application will use the Game Engine provide we have made this explicit in thefollowing high level system architecture diagram:9Here is an ER diagram:We assume that a Player can only play one game at one time. Statistics on pasts games arerecorded in the Player model.Since they can only be in one game at one time, we can store the game in the player model,too.Player(user, profile_picture, games_played, most_days_survived, most_kills, most_people,current_game)username, password, email, are stored in the django user model.Current_game stored the current instantiated game (tip: use the python pickle package topersist the game object, and save it in the Player model).How the Badge is represented depends a lot on the implementation. My suggestion isbelow, but other justifiable versions are acceptable, especially if they work in an elegantfashion.Badge( name, description, criteria, badge_type, level, icon)Where badge_type (kills, people, days) and criteria is an integer specifying how many kills,people, days, etc have to be obtained in order to get the badge.Icon is an image that represents the badge. The population script should ensure that thebadges and their icons are all inserted into the database.A class/handler is needed to determine if the criteria for a particular badge_type is met, ornot.Achievement (player, badge, date_awarded)如有需要,请加QQ:99515681 或WX:codehelp
“
添加老师微信回复‘’官网 辅导‘’获取专业老师帮助,或点击联系老师1对1在线指导。