HTML代写:CS117 WebService

主题任选,代写一个Web服务的网站。

Background

You are going to create your own webservice that allows you to administrate “things”. Which things is up to you. You create frontend (HTML, CSS) and backend logic (Java). We strongly encourage you to create a user-friendly UI that you can use yourself, but is also understandable for others.

You can for example create a music library, a task manager (your own Todoist?), a scrumboard, an hour logging system or whatever you like (as long as you match the requirements). You may notice that the requirements look a lot like those of Android Programming. You can re-use your Android case and implement a web version of it or you can choose something else.

You need to hand in a Spring Boot project (the source), Runnable JAR file and documentation for the grading of this course. This document contains the requirements for this project and documentation.

Requirements

  • The application can be used to manage “something”, that something can be anything you like. o For example: Your music library, game library, items in a warehouse, companies and contacts, scoring from a game or competition, rooms, inventory items. Or you can think of a product that you need yourself during your work (scrum tooling, hour logging, and so on)
  • Your application contains sort of complexity and algorithms, like search or filtering of information.
  • Your application contains login functionality and has at least 2 “hardcoded” users in it (which credentials you should state in your documentation). Users also need to register themselves.
  • The application looks good on smaller and bigger screens(phones, tablets and computer). Maak hiervoor gebruik van Responsive Design.
  • You do NOT use external HTML or CSS libraries (like Bootstrap). Neither do you use AJAX functionality. In Spring Boot you use the learned techniques. Questions about the usage of external libraries in Java can be asked to the lecturer.
    Please note: Your project should work without Javascript enabled. So libraries like Angular and Vue are not allowed.

Technical Requirements

  • Your application has at least 3 different controllers.
  • Your application model has at least 3 classes which has some sort of relation.
  • You have at least 6 different GETs (read) and 3 POSTs (create). This means that you also have at least 3 HTML forms.
  • You must use at least one GET-request that uses path variables (Something like /items/{itemid}) and at least one (other or the same) request that uses request params (Something like /search?q={query}).
  • You must implement a login system using sessions.
  • You use at least one cookie, besides the login features.
  • Your application generates dynamic HTML using Thymeleaf based on model information, you should use in your templates at least 2 iterations (for showing a list) and 2 conditionals somewhere in your app.
  • The HTML should be valid HTML and should contain numerous different tags, including some semantic and html5 tags.
  • You use a CSS file with at least different selectors on tags, classes and id’s. You also use (basic) responsive design and your css should at least use something from css3.

Documentation

Your documentation contains at least:

  • A small description about the purpose of your webapp
  • Wireframes of the different screens of your application.
  • Information how to start and use your application, mention the 2 user accounts with username and password.
  • Use case descriptions for the actions the user can do.
  • A description / diagram of your domainmodel (for example a classdiagram)
  • API Documentation (list of URLs with input and output description)
  • When necessary: A description of the complex pieces of your code.

According versions and coding:

  • Use Java 8 or higher
  • Use Spring Boot 2.1 or higher and Spring Framework 5.1 or higher
  • Make sure your project is based on Gradle and works in IntelliJ Ultimate Edition

Any problems matching these requirements? Please consult your lecturer! (early in the process, not after you submitted the assignment)

Steps / Suggested planning

Week Suggested work
1 App Idea + Functional Design
2 Technical Design
3 Add a text-based API
4 Create example HTML and CSS output for your project
5 Using your HTML and CSS as templates (in the template engine) in your project
6 Add cookies and wrap up
7 Add login to your project and wrap up everything ;-)

Deadline and grading

The deadline for the first chance is the Monday of week 8, 8:30, the retake will be Friday of week 10 23:59. You need to hand in the following:

  • Your Spring Boot project as ZIP file (Use File - Export to ZIP file)
  • Your documentation in PDF
  • A JAR file with a working version of your web app.

We will grade your app on the following criteria:

  • The functionality of your app (how it works + description of the app)
  • The UI of your app (how it looks + use cases + wireframes)
  • The technical documentation (class diagram + API documentation)
  • Your model classes
  • Usage of the Spring/Boot concepts
  • The HTML
  • The CSS
  • The usage of Thymeleaf for templating
  • The usage of cookies and sessions