Note
You will not hand in part 1 and 2. Mandatory assignments are approved based on class presentations.
The semester project presented here covers the following parts of the course:
Part 1: Mandatory Assignment 1
Part 2: Mandatory Assignment 2
Part 3: Exam Project
After part 1 event (Hackathon), you will continue to work on the project throughout the semester. You are not expected to complete the work during the Hackathon, but you should have a good foundation after the event.
As you will see, the various parts of the project links to the other projects covered during lectures.
Part 1
Part 1 will take run as a Hackathon on September 22, 2023.
You must develop a banking system. Your solution must meet these requirements:
[x] For future purposes, the system must record the customer's telephone number
[x] A customer can have any number of bank accounts
[x] The bank ranks its customers into three groups: blue, silver, and gold - the system must keep track of this information
[x] Customers ranked silver and gold can apply for loans
[x] Customers can transfer money from their accounts to any other normal account in the bank, if the account balance is sufficient
[x] The banking system must make use of the double-entry bookkeeping system for internal transfers
[x] Customers can view their accounts, account movements, and account balance
[x] Bank employees can view all customers and accounts
[x] Bank employees can create new customers and accounts, and change customer ranks
[ ] Customer must be able to set a password
[x] Use Python 3.11 or newer, and Django 4.2 or newer
[ ] Your system must be level three compliant on the Richardson Maturity Model
[x] Use a classless CSS library- A maximum of three custom CSS classes are allowed
Part 2
For part 2 you will continue work on your banking system, and further fulfill these requirements:
All requirements from part 1
[ ] Customers must be able to transfer money to customers in at least one other bank (run two or more instances of the banking system simultaneously)
[ ] Bank to bank transfer must follow a robust, documented protocol
[x] Bank employees can approve loans that customers have applied for - for the loan process to be completed, a banking supervisor must also approve the loan
Part 3
For part 3 you will continue work on your banking system, and further fulfill these requirements:
All requirements from part 1 and 2
[x] Implement two or more original features - they must be relevant to a banking system
[x] Deploy your project on the kea-dev server with proper certificate
Evaluation
The projects are evaluated on these criteria (ranked most important to least important):
Fulfillment of requirements
Complexity
Software design principles
Design and use of database systems
Relevance of the system
Code formatting and style
Exam
Warning
Don't forget that the exam covers the entire project curriculum, incl. reading materials.
You must hand in your project on Wiseflow as instructed, but you can continue working on your project until the oral exam.
You are not expected to write a report, but you must hand in a PDF with some text on (and maybe an ER diagram) it to be admitted to the exam.
The exam is a standard 30 minutes oral exam:
You have 10 minutes to present your project
We will ask you questions for 15 minutes about your presentation, your project, and the course curriculum in general
We will spend five minutes deciding on your grade and performing administrative tasks
At the beginning of exam you must present at least:
[ ] A listing of all the requirements listed above, indicating whether they have been fulfilled
03: Semester Project
Note You will not hand in part 1 and 2. Mandatory assignments are approved based on class presentations.
The semester project presented here covers the following parts of the course:
Part 1: Mandatory Assignment 1 Part 2: Mandatory Assignment 2 Part 3: Exam Project After part 1 event (Hackathon), you will continue to work on the project throughout the semester. You are not expected to complete the work during the Hackathon, but you should have a good foundation after the event.
As you will see, the various parts of the project links to the other projects covered during lectures.
Part 1
Part 1 will take run as a Hackathon on September 22, 2023.
You must develop a banking system. Your solution must meet these requirements:
[x] For future purposes, the system must record the customer's telephone number
[x] A customer can have any number of bank accounts
[x] The bank ranks its customers into three groups: blue, silver, and gold - the system must keep track of this information
[x] Customers ranked silver and gold can apply for loans
[x] Customers can transfer money from their accounts to any other normal account in the bank, if the account balance is sufficient
[x] The banking system must make use of the double-entry bookkeeping system for internal transfers
[x] Customers can view their accounts, account movements, and account balance
[x] Bank employees can view all customers and accounts
[x] Bank employees can create new customers and accounts, and change customer ranks
[x] Use Python 3.11 or newer, and Django 4.2 or newer
[ ] Your system must be level three compliant on the Richardson Maturity Model
[x] Use a classless CSS library- A maximum of three custom CSS classes are allowed
Part 2
For part 2 you will continue work on your banking system, and further fulfill these requirements:
All requirements from part 1
[ ] Customers must be able to transfer money to customers in at least one other bank (run two or more instances of the banking system simultaneously)
[ ] Bank to bank transfer must follow a robust, documented protocol
[x] Bank employees can approve loans that customers have applied for - for the loan process to be completed, a banking supervisor must also approve the loan
Part 3
For part 3 you will continue work on your banking system, and further fulfill these requirements:
All requirements from part 1 and 2
[x] Implement two or more original features - they must be relevant to a banking system
[x] Deploy your project on the kea-dev server with proper certificate
Evaluation
The projects are evaluated on these criteria (ranked most important to least important):
Fulfillment of requirements Complexity Software design principles Design and use of database systems Relevance of the system Code formatting and style Exam
Warning Don't forget that the exam covers the entire project curriculum, incl. reading materials.
You must hand in your project on Wiseflow as instructed, but you can continue working on your project until the oral exam.
You are not expected to write a report, but you must hand in a PDF with some text on (and maybe an ER diagram) it to be admitted to the exam.
The exam is a standard 30 minutes oral exam:
You have 10 minutes to present your project We will ask you questions for 15 minutes about your presentation, your project, and the course curriculum in general We will spend five minutes deciding on your grade and performing administrative tasks At the beginning of exam you must present at least:
[ ] A listing of all the requirements listed above, indicating whether they have been fulfilled
[ ] An ER diagram of the database design