CSCI 2720/ESTR2106 – Building Web Applications OneJava

部署运行你感兴趣的模型镜像

Java Python CSCI 2720/ESTR2106 – Building Web Applications

Assignment One: Bootstrap Web Page with a Web Form

Released: 2nd October 2024

Due: 23:59, 23rd  October 2024

Synopsis:

You are going to build a webpage to introduce a company or an organization. There are specific features that need to be included, as outlined in the following problems. Please note that factual accuracy is not necessary for the content. Your webpage should be written English.

Problem 2E and Problem 7E are compulsory questions for ESTR students. For CSCI students, you may also attempt these questions. However, we will only give you feedback without any extra scores.

Problem 0: Usability – look and feel (10%)

Your submission should be well-decorated and responsive. This includes responsiveness in layout and clarity of text/color presentation. Overall, you should provide a smooth experience to the user.

Problem 1: Basic contents (5%)

These HTML elements must be included in your HTML5 file:

•   Heading

•   List

•   Table

•   Hyperlink

•   Image / Picture

These HTML semantic elements must be used appropriately:

•   <header>

•   <nav>

•   <section>

•   <aside>

•   <main>

•   <footer>

Problem 2: Styling (10%)

Using Bootstrap and/or CSS, apply the following to your page:

1.   At least one column implemented using bootstrap class

2.   Header background image

3.   Section with background color

4.   Horizonal link items in navbar

5.   Customized font and icons (can be in paragraph or in section header)

Problem 2E: CSS Animation (20%)

Apply a CSS animation triggered by the mouse hovering on the logo (or site name) of the navigation bar.

When the mouse hovers over your logo (or site name), the logo should look like it is floating up from the page plane (becomes slightly larger and the shadow occurs under it), as the sample image shows below. The animation duration should be one second.

 

By default, the logo MySite looks flat.

 

When your mouse hovers over it, the logo pops up with an animation (1 second).

Remark: Only use CSS to implement this problem. Do not use JavaScript.

Hint: Consider alter the box-shadow and transform. CSS properties of the logo. The element of logo or site name should have a border radius to achieve the effect in the sample image.

Problem 3: Dynamic contents (35%)

Task 0: Hide/show button

Include a button to hide or show an extra bar of buttons for the following task with their features described below. When the bar is hidden, the button should read “Show”. And while the bar is shown, the button should read “Hide” .

Here is an example.

My site section1s po tights comments show

 

Task 1: Align

This is the first button in the hidden bar. It should have the text “Task 1: Align” and change align mode of text in columns once the button is clicked. The align mode should change in the sequence:

Left >> Center >> Right >> Left 

Task 2: Spotlight

When this button is clicked, a dialog box asks the user to enter a spotlight of the company. If the user entered something, the user input should be added to the spotlight area of your page. If nothing is entered, no new item should be created.

Hence, there should be a spotlight area in your webpage. Here is an example:

 

This area should always appear on user’s screen,i.e., it should stay in a specific position as the user scrolls.

In this task, use prompt () for the dialog box.

Task 3: Bootstrap Toast

When this button is c CSCI 2720/ESTR2106 – Building Web Applications Assignment OneJava licked,a Bootstrap Toast window should occur at the bottom-right corner of  the  page  (See: https://getbootstrap.com/docs/5.2/components/toasts/).  Inside  the  toast window, there should be a text displaying the current time (no need to refresh per second). Here is an example.

 

Hint: You need JavaScript. to get the current time from the operating system and format it into readable text.

Problem 4: Submit comments (15%)

Add the web form. into your webpage to collect the following information from user:

•     Email address

•     Color: Red/Green/Yellow/Blue

•     Comment

You are recommended to use input boxes for the shorter text for the email address, textarea for the comment paragraph, and a group of radio buttons for the color. You may also decide on your own implementation to achieve a similar user experience.

There should be an “Add Comment” button that adds the new comment (together with the email address and the selected color) to the bottom of all existing comments. After the new comment appears, the form. should become blank again.

It is okay for your page to come with default comments included and a comment data file in any format.

Problem 5: Form. validation (10%)

When the user clicks “Add Comment”, there could be issues, in particular:

•   Incorrect email format

•   Empty comment/ email

Your task is to avoid both above situations. Implementation is flexible.

Hint: https://www.w3schools.com/js/js_validation_api.asp

Problem 6: Loading and saving comments (15%)

You are required to implement the following features:

•    Save new comments whenever a new comment is added

•   Load comments from the saved file when the page loads

These features can be done using JS Fetch with the Simple Web Server, which is introduced in Lab04. Your comment file can be in text or JSON. Both features should be done automatically when the user performs “Add Comment” in Problem 4.

You must use the Simple Web Server as we will grade your submission with it. See:

https://simplewebserver.org

Problem 7E: TypeScript (15%)

TypeScript. is a superset of JavaScript, which compiles to readable, standards-based JavaScript. In this problem, you are asked to implement a timer for duration of stay, at the footer of the page. Here is an example.

 

Specifically, you need to implement a class using TypeScript. which defineshow to update the element content per second and bind the DOM element in the footer to this class when loading the page. Then you need to compile this your TypeScript. file into JavaScript. and import this compiled JavaScript. file in you HTML file.

You should include both your TypeScript source files and the compiled JavaScript files in your submission. Directly implement this problem in JavaScript. won’t get score.

Submission:

We will only visit your web page submission using Google Chrome (almost-latest versions) with Simple Web Server. We will consider all your files in the same local server directory.

Include the code header for honesty declaration with your full name and student ID on top of your HTML file using comments.

Zip all your files and submit it on BlackBoard. You can have unlimited submissions. We will only grade your latest zip file. Name your zip file as:

(SID)_asg1.zip

Your zip file should only include:

1.   One .html file

2.   One .js file

3.   Optional  .css file

4.   Image files or comment data files (you may organize images in subfolder  ./images)

For  ESTR  students:  your  submission  should  include  an  extra  folder  (for  problem  7E) containing a TypeScript. source  .ts file, a complier config  tsconfig.json file, and a compiled  .js file  (you may organize them in  subfolders like  ./src or  ./dist). The compiled .js file should also be imported in your  .html file         

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

**项目名称:** 基于Vue.js与Spring Cloud架构的博客系统设计与开发——微服务分布式应用实践 **项目概述:** 本项目为计算机科学与技术专业本科毕业设计成果,旨在设计并实现一个采用前后端分离架构的现代化博客平台。系统前端基于Vue.js框架构建,提供响应式用户界面;后端采用Spring Cloud微服务架构,通过服务拆分、注册发现、配置中心及网关路由等技术,构建高可用、易扩展的分布式应用体系。项目重点探讨微服务模式下的系统设计、服务治理、数据一致性及部署运维等关键问题,体现了分布式系统在Web应用中的实践价值。 **技术架构:** 1. **前端技术栈:** Vue.js 2.x、Vue Router、Vuex、Element UI、Axios 2. **后端技术栈:** Spring Boot 2.x、Spring Cloud (Eureka/Nacos、Feign/OpenFeign、Ribbon、Hystrix、Zuul/Gateway、Config) 3. **数据存储:** MySQL 8.0(主数据存储)、Redis(缓存与会话管理) 4. **服务通信:** RESTful API、消息队列(可选RabbitMQ/Kafka) 5. **部署与运维:** Docker容器化、Jenkins持续集成、Nginx负载均衡 **核心功能模块:** - 用户管理:注册登录、权限控制、个人中心 - 文章管理:富文本编辑、分类标签、发布审核、评论互动 - 内容展示:首页推荐、分类检索、全文搜索、热门排行 - 系统管理:后台仪表盘、用户与内容监控、日志审计 - 微服务治理:服务健康检测、动态配置更新、熔断降级策略 **设计特点:** 1. **架构解耦:** 前后端完全分离,通过API网关统一接入,支持独立开发与部署。 2. **服务拆分:** 按业务域划分为用户服务、文章服务、评论服务、文件服务等独立微服务。 3. **高可用设计:** 采用服务注册发现机制,配合负载均衡与熔断器,提升系统容错能力。 4. **可扩展性:** 模块化设计支持横向扩展,配置中心实现运行时动态调整。 **项目成果:** 完成了一个具备完整博客功能、具备微服务典型特征的分布式系统原型,通过容器化部署验证了多服务协同运行的可行性,为云原生应用开发提供了实践参考。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值