联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp2

您当前位置:首页 >> Web作业Web作业

日期:2020-05-11 11:26

School of Science

COSC2675 Rapid Application Development

Assignment

Assessment Type: group assignment

Submit online via Bitbucket or Github

Marks awarded for meeting requirements as closely as possible.

Clarifications/updates may be made via announcements/relevant discussion forums.

Due date: end of Week 11; Deadlines will not be advanced but they may be extended.

Please check Canvas → Assignments → Assignment for the most up to date information.

As this is a major assignment, a university standard late penalty of 10% per each working

day applies for up to 5 working days late, unless special consideration has been granted.

Weighting: 40 marks/100 (note: that includes demo marks associated with this assignment)

1. Overview

The objective of this assignment is to train on high level web development skill including task

analysis, fast development, testing and team collaboration. The different stages of this assignment

are designed to gradually introduce different scales of development.

Develop this assignment in an iterative fashion with good time management practice. You should get

started now.

If there are questions, you must ask via online forums or similar communication channels. You should

phrase your question in a general manner. The teaching team is not supposed to debug for you. Do

not post your source code. Small code snippets are fine.

2. Assessment Criteria

This assessment will determine your ability to:

1. Independently analyse the task requirement and formulate a development plan.

2. Systematically develop a complete web application.

3. Follow Ruby and Rails coding convention as described in the course materials.

4. Follow agile style of development.

5. Test application regularly and develop the application based on testing.

6. Document code when necessary

7. Use external gems or libraries

8. Control versions and stages of the development

9. Collaborate effectively with a small team.

10.Meet deadlines.

,

Page 2 of 12

3. Learning Outcomes

This assessment is relevant to the following Learning Outcomes:

1. Programming capability using Ruby

2. Development capability of a full-stack application based on Ruby on Rails framework.

3. Knowledge and experience of industry level software engineering practices e.g. TDD, Agile.

4. Understanding and experience of team development with tight time constraints.

4. Assessment details

Please ensure that you have read sections 1-3 of this document before going further. Your code

must meet the following code and documentation requirements.

Suppose you run a tech startup. You see the need of a news sharing website as everyone is

inundated by news, messages from different social media and news channels. So you plan to build

a new production, a “proper” news-sharing web site. A visitor only see news shared by those who

have similar interest.

======================== PASS LEVEL ========================

A new visitor will be required to sign up to be a user. The user must provide an email address, two

identical password and a mobile number to be registered. If the visitor is already registered, then

he/she can click the “already a user?” link for the login page (see below).

The login page is connected to Signup page as well via link “register”. Your app can begin with login

page or signup page. The style of all pages should be consistent. The footer should show

information like team member names, tutor group and tutor name.

,

Page 3 of 12

After login, your app home page should look similar to the above example.

? The “Recent Post” button is to show the most recent posts on the main page. For this

assignment, you can assume recent means one month.

? The “Recent Post” page is the default homepage.

? Each news item shows the avatar icon of the person who posted it.

,

Page 4 of 12

? Each news item shows the title, the name of the contributor, the time stamp, categories of the

news, number of comments and number of views.

? The title will be highlighted with mouse-over (see the top news post “MIDI 2.0…”). The news

page will show when the title is clicked.

? On the right side bar, the “Recent Members” area shows the users that are recently active.

You can assume that the width of this area does not change and it shows maximum 12 users.

? The “Topic” area contains some predefined topics e.g. A.I., V.R., RMIT, Game etc. Topics will

be highlighted when mouse over. They can be selected and un-selected by mouse click.

? The “Post” area contains five most viewed posts (which might include some old posts)

? The “Links” area contains a few links to external sites such as RMIT homepage,

rubyonrails.org etc. The links can also be highlighted when mouse over.

? You should have a database at backend that stores information of users, news posts,

comments and other necessary data.

? By clicking the user icon at the top right corner, a member can log out.

Your app should support user “RAD” with password “Rails2020”.

======================== Credit LEVEL ========================

NOTE: You should only attempt this level if you have completed PASS level.

At Credit level, you app allows unregistered visitor to view the home page. However a visitor cannot

make a new post. When the visitor tries to make a new post by clicking the “New Post” button, you

app will prompt him/her to login or to register. The visitor can also login in by clicking the top right

icon. After login, the visitor should see the home page same as that in Pass level.

Selected Post: As specified in Pass level, user can select topics in the “Topic” area on the right

side. When user click “Selected Post”, then the main area will only show news with the selected

topic(s). See the example below. When user selected “A.I.”, only AI related news items will show. If

user selects more topics, then news of the newly selected topics will appear. Similarly, if a topic is

unselected, then the relevant news items will disappear.

Note: Topic “News”, as shown in page 3, is the default topic, meaning no topic tag. News items of

this type should not appear under “Selected Post”.

,

Page 5 of 12

New Post: By clicking the “New Post” button, users can create their own posts. Other than title and

content, users can also select topic from a pre-defined list. If none of the topic is selected, then the

new post will be tagged with a generic topic “News”, which would not appear under “Selected Post”.

The title of a post cannot be empty. The content cannot be empty as well. After clicking the “Post”

button, a valid post will appear on the front page with the actual time stamp.

,

Page 6 of 12

Profiles: The name in each news item and the icons in “Recent Members” area are all clickable.

They link to the profile page of the corresponding member. A profile page shows the joining time, the

city, recent posts and recent comments of this member.

======================== Distinction LEVEL ========================

NOTE: You should only attempt this level if you have completed CREDIT level.

Input validation: When a new user signs up, you are

required to validate the input.

? The email address must be valid as <>@<>.<>

? The initial pass word should be in between 8-20

characters, excluding special characters.

? The confirm password must be identical to the initial

password.

? Mobile number must be a number in between 10-13

digits.

My Setting: When user clicks “My Setting”, a page similar to

below should appear.

,

Page 7 of 12

The top “My Profile” page is the

same as that in Credit Level.

“My Posts” lists all the posts made

by this member.

“My Comments” lists all the

comments that the members to

other people’s posts.

“Comments to Me” shows the

comments that other members

made on this member’s posts.

You are free to design how the

above three parts would look like.

For “Setting”, there are four

sections: “Personal Info”, “Avatar”,

“Password” and “Verification”.

See example of Personal Info on

the left. “Avatar” is where user sets

their Gravatar profile (see info re

Gravatar in tutorials or search

online.) “Password” is to change

password. “Verification” is where

user upload an official card for

authentication.

Note: the avatar image and card image should be stored locally, not on a remote site.

,

Page 8 of 12

Making comments: For each post, all the relevant info will be display when user click the post item

from home page. That includes existing comments on the news. See the example below. Note the

right side bar, including Recent Members, Topic, Comments and Links, also appears on this page.

User can comment on that news post. A simple text box is fine for this level. The number of

comment on this post should increase by 1 after the comment is posted.

,

Page 9 of 12

======================== 80+ LEVEL ========================

NOTE: You should only attempt this level if you have completed DISTINCTION level.

Live view count: The number of views of a post increases by 1

when a viewer opens the news item.

Remember me: the login page at this level supports this

functionality, so a user doesn’t have to type user name and pwd.

Forget password : the login page at this level can help user to

retrieve the password by simply sending a temporary login link to

the user’s email. User can bypass login when the user clicks the

link in the email. You should use an email address that you have

access e.g. your RMIT student email address.

Search: Search function works for both unregistered users and logged-in members. News posts that

contain the search key word will listed in a manner similar to “Recent Post” and “Selected Post”. You

can ignore comments which may also contain the search keyword.

(before login)

(after login)

======================== 90+ LEVEL ========================

NOTE: You should only attempt this level if you have completed 80+ level.

Nest comments: The posted comments can be commented as well, similar to a forum where you

can reply to someone else’s reply.

Rich text box: Your text box at this level uses rich text box which supports editing and formatting.

That applies to creating a new post and making a comment.

,

Page 10 of 12

Deletion: User can delete their own comments in the My Setting area, under “My Comments”. If a

comment is deleted, the number of comments of that post should be updated accordingly. User can

also delete their own post in the My Setting area, under “My Posts”. You can still keep the comments

attached to that post so the deletion from one user would not affect the profile of another user.

News pull down menu: The News menu in the header is implemented at this level. It only shows 2

options which are the two most popular news topics. Being popular means the highest total views of

all posts tagged with that topic.

5. Referencing guidelines

If you have used sources of information other than the contents directly under Canvas→Modules,

you must give acknowledge the sources and give references using IEEE referencing style.

Where: Add a code comment near the work to be referenced and include the reference in the IEEE

style.

How: To generate a valid IEEE style reference, please use the citethisforme tool if unfamiliar with

this style. Add the detailed reference before any relevant code (within code comments).

6. Academic integrity and plagiarism (standard warning)

Academic integrity is about honest presentation of your academic work. It means acknowledging the

work of others while developing your own insights, knowledge and ideas. You should take extreme

care that you have:

? Acknowledged words, data, diagrams, models, frameworks and/or ideas of others you have

quoted (i.e. directly copied), summarised, paraphrased, discussed or mentioned in your

assessment through the appropriate referencing methods,

,

Page 11 of 12

? Provided a reference list of the publication details so your reader can locate the source if

necessary. This includes material taken from Internet sites.

If you do not acknowledge the sources of your material, you may be accused of plagiarism because

you have passed off the work and ideas of another person without appropriate referencing, as if

they were your own.

RMIT University treats plagiarism as a very serious offence constituting misconduct. Plagiarism

covers a variety of inappropriate behaviours, including:

? Failure to properly document a source

? Copyright material from the internet or databases

? Collusion between students

For further information on our policies and procedures, please refer to the University website.

7. Assessment declaration

When you submit work electronically, you agree to the assessment declaration.

8. Submission

8.1 The submission can be from an individual or a team no more than three. For a threemember

team, 15% mark reduction will apply. For example, a 59-mark submission

from a three-member team will result in 50 for each member.

8.2 Your application is expected to be production ready. Proper test and data validation

should be embedded in your application regardless of the level that you are

attempting.

8.3 There is no need for your application to look and behave exactly like the above

example. You can make necessary adjustment to improve the design. However the

aforementioned functionalities are the minimum requirement and should be well

supported.

8.4 You are required to deploy the final version onto Heroku.

8.5 In the README.md file of your application, you should state

- Name(s) & student number(s) of the development team

- The highest level you attempted, e.g. CR, DI or 90+

- The time sheet for each team member (see Point 8.6 below)

- Heroku deployment URL and the last Heroku deployment log

8.6 Your assignment should hosted on a PRIVATE bitbucket or Github repository named as

RAD2020_{studentNumber(s)_in_ascending_order_separated by_underscore}. You

should update your repo as frequent as possible.

,

Page 12 of 12

8.7 You are required to keep track of the hours that you spent on the development including

testing, discussion, reading.

For one professional developer working alone, the expected completion time is

about 5 full days.

For time tracking purpose, we recommend toggl.com, a free online time tracker. You

can sign in with your RMIT student account (under “SIGN UP WITH GOOGLE”). This

log needs to be included in the README.md file (See Point 8.5 above).

8.8 Only the following GEMS should be used in your application.

gem 'rails',

gem 'bootstrap-sass',

gem 'puma',

gem 'sass-rails',

gem 'uglifier',

gem 'coffee-rails',

gem 'jquery-rails',

gem 'turbolinks',

gem 'jbuilder',

gem 'carrierwave', '

gem "mini_magick"

gem "font-awesome-rails"

gem 'bcrypt',

8.9 More details about submission and demo will be provided close to the due date.

Submission failed to run with provided docker/vagrant image would not be marked.

Rubric

Assessment Task Marks

Pass Level 50 - 59 marks

Credit Level 60 - 69 marks

Distinction Level 70 - 79 marks

80+ Level 80 - 89 marks

90+ Level 90 - 100 marks

1-member submission

2-member submission

3-member submission

Submission from a group larger than 3

receives zero mark

final = mark * 100%

final = mark * 100%

final = mark * 85%


版权所有:编程辅导网 2018 All Rights Reserved 联系方式:QQ:99515681 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。