Page 1 of 7
COMP 2139 – Assignment 1
Due Date: Friday, February 24th, 2023 (11:59 pm)
Team Size: 2 – 4 Team Members (mandatory).
Project Name: GBC_Bids-Group-<Number>
Problem Synopsis:
The GBC Bids web application is an online auctioning web solution that allows users to register and create an
account, where they can buy and/or sell auctioned items. The application is themed toward the George Brown
College community; however, the application is not restricted to George Brown students, staff or faculty.
The compulsory technologies required for this project are the following:
• ASP.NET
• C#
• IIS (IIS Express)
• SQL Server (SQL Express)
• .NET6.0
• MVC Design
The minimum project requirements have been summarized below.
Page 2 of 7
Project Overview
As stated above, the objective of this first assignment is to construct an online auction (bidding) system, to allow
users to participant in the auctioning (buying/selling) of their various products. The application serves both online
sellers and buyers equally. Specifically, the application should accommodate sellers that market their products (for
auctioning), and buyers, to query and ultimately bid for the various auctioned assets (products available for bidding).
Users and Roles
Below is a summary of the identified users and their roles within the proposed solution.
Visitors (Guests)
• These users are not recognized by the system
• Are permitted to search through auctioned products
• Are not permitted to bid and therefore, not permitted to purchase products
• Are not permitted to sell and therefore, not permitted to market products
Buyers (Client)
• These are registered users, recognized by the system (login required)
• Are permitted to search through auctioned products
• Are permitted to bid and therefore purchase products
• A buyer can also be a seller, but not all buyers are necessarily sellers
Sellers (Client)
• These are registered users, recognized by the system (login required)
• Are permitted to search through auctioned products
• Are permitted to sell and therefore, market products
• A seller can also be a buyer, but not all sellers are necessarily buyers
Page 3 of 7
Project Requirements (Compulsory Components)
• Registration:
o A registration process is a compulsory component of the proposed solution.
o To register, a guest must provide the following information at a minimum.
A username
A password
• Password verification is required
o The registration process should send a registration verification email. The verification
email should facilitate the initial access to the system for the guest.
o After a successful registration, the guest user is then elevated as a recognized client,
providing the necessary credentials in subsequent logins.
• Login:
o A login process is a compulsory component of the solution.
o The solution authenticates the user using basic authentication (username/password).
o Post successful login, the user should be presented with a unique landing page
o The landing page should be stylish, while dually providing a clear and concise way for
the clients to navigate the application.
• Search Items:
o In order to facilitate the selling of auctioned items, the solution should have a
mechanism that allows its guests and clients to query all items being auctioned.
o The search capability should be intelligent and useful. For example, search filters
should be permitted, that is, performing searches, on all the available auctioned
items, using string literals (keyword search), or perhaps even searching via item
category, or item classification search etc..
o The records returned when searching for items, or viewed from the landing page –
depending on your design – should provide images of the auctioned item(s).. the
images should be hyperlinks that further allow the user to get lower-level details
about the item itself (see View Auctioned Items)
o The application should capable of sorting products, perhaps by product category,
and/or cost/price. A feature that is extended to the clients to perform if so desired.
Page 4 of 7
• View Auction Items:
o After an asset search is executed, and a result set returned, users thereafter, should
have the ability to select (click) on individual items from the result set, to further
inspect that selected items intimate (low-level) details.
o The records returned in an item search (or viewed from the landing page let’s say) –
should provide images of the product… the images should be clickable hyperlinks
that further give details about the product
• Placing a Bid (future development):
o Please note, for assignment 1 – your application need NOT be concerned with the
use cases/ implementation of placing, managing or orchestration bids. This will be a
feature preserved for Assignment 2 (amongst others enhancements to come).
• Selling (Adding Items):
o A mechanism (design) must be implemented in the solution to allow client (sellers) to
add their items (assets) into the system, ultimately to market for sale.
o Typical asset information may be the following (feel free to add more):
Product Name – mandatory
Product Description – mandatory
Minimum Cost/Bid amount (initial seed bid) – mandatory
Auction Dates (bid expiry) – date and time – mandatory
• Starting Bid Date
• Closing Bid Date
Asset Condition (dropdown) – mandatory
Category – mandatory
Image Upload – mandatory
o In addition to adding new assets, sellers should also be permitted to, review, delete or
update their existing marketed items.
• Application UX (User Experience) and Design
o A Navbar would be greatly appreciated (and wise to be honest), as it will facilitate
ease of navigation within the solution.
o A footer is a mandatory component of your application
The footer should contain:
• Your group number (blackboard group #)
• The full name (first, last) of each member of your group
• The student number of each member of your group
• The course section number of each member in your group
o Of course, it should go without saying, but HTML, CSS (bootstrap or equivalents)
and JavaScript are permitted in your implementation, that is, if you deem them
necessary/useful.
Page 5 of 7
Assignment Recommendations
The Database
The database for the solution stores the asset inventory that supports the application. You may build the database up
incrementally, but ideally for the first completed assignment, the database should include tables for storing data
about the auctioned assets, in addition to its users. Please note you do need to anticipate, future enhancements
(assignment 2), as such, the recommendation is you develop only the elements of the schema you need for
assignment 1, and anticipate (expect) expansion of your design for the final assignment (assignment 2). Be diligent
in your ERD / Class design.
Users
To facilitate testing, immediately seed that database with 2 users, namely:
User Type
Username
Password
Client
buyer
buyer
Client
seller
seller
Page 6 of 7
Final Word on Implementation
The documentation and instructions of this assignment includes no wireframes that convey how the application is its
associated pages should conceptually appear. Please note, the lack of wireframes is done intentionally, that is, the
design of each page in the overall application, is ultimately left up to the group. A level of creativity and originality
is anticipated.
This information is detailed enough for you to complete the assignment. However, you’ll need to use your best
judgment on how to implement many of the requirement details. To do that, write the code, in such a way that you
think is best.
For some requirements (and in almost all real-world applications), the specifications will require you and your team
to perform a certain amount of investigation and research. Please note this is intended. For example, some
requirements will require to think about authentication etc, others may require you to think about data organization
or storage, and yet others further still, may simply require you to learn a new library or concept, even if, those new
concepts/libraries have not been formally covered in the course. I’m interested to see how your group approaches
and solves problems.
It should go without saying, that all final design decisions (aesthetics, navigation etc…) are left up to the group to
decide and convey. As such, usability and creativity will be rewarded. Take a moment to think about that, as both
(usability and creativity) are subjective not objective elements associated with grading.
Lastly, any additional pages are welcome. A requirement’s document is used only to convey a perception of what is
desired, but each developer is free to interpret differently, so long as the underlying requirements are met.
Originality is always welcome, and always encouraged, and marks are often awarded accordingly.
Remember your design is centered on MVC – the central topic of this course! Use your models, views and
controllers appropriately.
R A
Page 7 of 7
Assignment Submission Guidelines:
1. Video Requirement
a. Create a Short Video presentation. Your presentation should start with an introduction, where it must
display a PowerPoint (or Google Presentation), that is 1 (single) slide. The slide introduces each
member of your group, again, at the very start of your video.
b. The first (and only) slide of your presentation must include current images of you and your partner(s)
(no avatars allowed) that are displayed appropriately. You must also include your Full Names, Student
IDs, the Course Code, Course Name, Course Section and your Assignment information.
c. Within the recording, you or your partner(s) will take turns demonstrating your program’s
functionality. You must show your site working properly. You will also construct an assignment status
report, a single page checklist/report. Use the report during the video, to facilitate communication
confirming where requirements where successfully implemented and/or where requirements failed to
be implemented and why.
d. You and your partner(s) will each share the responsibility in describing the code in your solution that
drives the functionality of your program – you will want to do this part well and be very clear. Be
intelligent/selective on what code segments you describe, I do not need to know how every line of code
works.
e. Sound for your video must at an appropriate level so that your voices may be clearly heard, and your
screen resolution should be set so that your program’s code and console details are clearly visible. In
short, QA your videos. If your video is poor, assignment failures can/will be assigned.
f. Your video should run no more than ~5-10 minutes. If you exceed this time, I simply will be able to
watch them… resulting in a grade of zero.
2. The 1 team lead, must submit the following 3 components to Blackboard on behalf of the entire group:
a. The 1-page status report – mandatory
b. The (zipped) project source code – mandatory
c. The group video file – mandatory
i. You may find OBS Studio useful to create this
Steps to compress your project source – ONLY if you deem it too large
d. Close your project and exit Visual Studio
e. Navigate to your project folder, and make a copy (recommended)
f. Remove can safely delete the following folders from your (copied) project directory:
i. .vs
ii. bin
iii.
obj
iv. packages
Now compress (.zip) the copied project folder and name accordingly
g.
3. Be cautious DO NOT share your application with others. Complete failures will be assigned if code is
shared. All assignments will be reviewed and analyzed strictly within these regards.
4. Late assignments are assigned a penalty of -25% per day (max 3 days).
Good Luck!