CSC7062 2023-24TradeCard
CSC7062 2023-24TradeCard
You are to develop a fully working website/app that allows users the ability to browse trading card
game (e.g. Pokémon) collections by other users. You can choose any viable trading Pokémon card
franchise to focus your design and functionality. Only one franchise should be developed.
The name/root of the site will be called tradecard
The web site/app will allow users to browse/search/filter trading card game collections as an
anonymous user. It will also allow users to join the trading card collection sharing community for
the purpose of giving the registered user extra functionality.
The main purpose of the assessment is to show an understanding of modern server-side JavaScript
web development.
Please note: this assignment contributes 100% of the overall assessment for the module (any re-sit
submissions will be capped at 50% whereas for any deferral submissions the mark will be
uncapped).
The following is a breakdown of the marks (marking criteria) for each area of system design &
development.
• System functionality & experience [50%]
• User interface [10%]
• Code-base implementation [30%]
• Report [10%]
TOTAL 100%
Node.js dependencies can be used in your project code e.g. uid, validator, bcrypt etc. Using popular design
patterns is also an option e.g. MVC. Make sure to reference NPM dependencies and any extra learning material.
• Design of dataset/database
Holds the software system's data. It should be robust, scalable, and secure. An ER diagram of your final DB design
should be included in the report.
Development advice: Develop the database ER and sample data as soon as possible. This will help direct your
functionality design and development. A trading card could potentially hold the following data (taken from the
https://www.tcgdex.dev/ API) ...
Application Programmable Interface (API) can be design and implemented to show understanding of
advanced software system design and implementation. It is optional.
Development advice: Create two separate systems that run on a different PORT number e.g. have your web
app listening on PORT 3000 and your API listening on PORT 4000.
Below is a sample of data that could potential held by your system.
{
"image": "https://assets.tcgdex.net/en/base/basep/1/low.webp",
"name": "Pikachu",
"rarity": "Common",
"hp": 60,
"types": [
"Lightning"
],
"stage": "Basic",
"attacks": [
{
"cost": [
"Colorless"
],
"name": "Growl",
"effect": "If the Defending Pokemon attacks Pikachu during your opponent's next turn, any damage
done by the attack is reduced by 10 (after applying Weakness and Resistance)... "
},
{
"cost": [
"Lightning",
"Lightning"
],
"name": "Thundershock",
"effect": "Flip a coin. If heads, the Defending Pokemon is now Paralyzed.",
"damage": 20
}
],
"weakness": "Fighting"
]
}
Please note: It's your system, so you decide that data to be stored and used (CRUD).
STACK DETAILS
There are many ways in which the requirements can be approached and many design decisions to
make. For example, UI design and implementation can be developed before coding the server-side
functionality. Database design and content can also be created early on.
Make sure to develop and test a website based on the given specification using both client-side
and server-side technologies covered in the module. Note: you are permitted to use client-side
libraries and frameworks, e.g., Bootstrap, jQuery etc.,
ALL CSS/JS dependencies should be clearly listed in your report.
You are limited in the web development stack you can use (like all software development projects).
Build your web site/app using both client-side (HTML, CSS & JS) and server-side (Node.js,
Express.js (EJS) & MySQL) technologies covered in this module.
AVOID implementing other front-end frameworks e.g. Vue, REACT, Angular etc. The assessment
is based on technologies covered in this module.
Below is a list of permittable technologies for the project:
• Other external JavaScript node modules (installed using NPM)
• Client-side JavaScript DOM libraries e.g., jQuery, MooTools
• CSS libraries e.g., Bootstrap. Bulma
REMEMBER to reference the above libraries and dependencies.
Below is a list of non-permitted technologies for the project:
• JavaScript frontend frameworks e.g., Vue, ReactJS, Angular, Ember.js
• NoSQL Databases e.g. Mongo DB, Apache CouchDB
• Other template engines for Express.js, e.g. Jade, Pug
If unsure what technology framework/library is allowed, then ask the module lecturer (Teams
message).
SUBMISSION PROCESS
Details on upload requirements on the CANVAS assessment (please read them carefully). You may
be deducted marks or receive a grade of 0% if submission requirements are not adhered to
correctly.
This will make the assessment and feedback process as efficient as possible. For example, you’re
your submission is missing a crucial file, then the system cannot run on the lecturer's local server.
Therefore, the functionality of the web app cannot be assessed as the web app cannot run.
With the exception of students that have been granted an extension by the Exceptional
Circumstances panel, see https://qubstudentcloud.sharepoint.com/sites/assessment-support-
hub/SitePages/Adjustments-and-Mitigations.aspx
A penalty for late submissions will be applied as follows:
Coursework submitted after the deadline will be penalised at the rate of 5% of the total marks
available for each calendar day late up to a maximum of five calendar days, after which a
mark of zero shall be awarded, i.e., up to one calendar day is 100% - 5%; up to two calendar
days is 100% -10%; up to three calendar days is 100% - 15%, etc.
AUTHORSHIP OF WORK
Please be aware, contractual agreements with 3rd party sources should be avoided as this will fall
under the academic offence of 'contract cheating'. Relying heavily on 3rd party GitHub repositories
and code generated by AI and other sources should also be avoided and subject to the academic
offence of 'plagiarism',
Referencing third-party learning resources, coding tutorials (video/written) is a core requirement.
Students will be chosen to prove authorship of work post submission. Demonstrations to prove
originality of your work may involve demonstrating further implementation of your code
source/base.
DISCUSSION FORUM
Post questions about assessment on Discussion forum.