Project-1
Overview
The first project is to build an information management system.
Students are required to use a relational database
as the underlying storage and also need to provide a simple interface
for presenting results.
This project is an opportunity to:
- Understanding the use of databases in real-life applications
- Learn to design a
reasonable data model architecture
- Learn how the code layer interacts with the database layer as well as the interface and logic
Release Date: March 26, 2021 / 15:25
Due Date: April 23, 2021 / 17:10 April 30, 2021 / 17:10
Specification
A basic information management system means adding
, deleting
, checking
and changing
data in specific application scenarios via an interface. (CRUD)
So you need to think of an information system application scenario and implement it.
Here are the specific requirements needed to complete, and to aid understanding, I will use the library management system as an example in the following sections.
Databases
-
You must use a
relational database
, but there are no restrictions on the exact.That means that you can use:
- Oracle
- DB2
- SQL server
- Mysql
- postgresql
Any
you are familiar withyou want to get familiar with -
The model design of the data must be reasonable
-
The design of the data tables is paradigm compliant
3NF
,CNF
,BCNF
... orStar model
,Snowflake model
.... -
The fields are designed to be reasonable and overlap with the actual as far as possible
-
-
Because it is up to you to decide what information system is about, you will need to find or randomly generate your own data
In the school library management system:
book
category
location
user
etc.
Backend design
-
Any language you like.
-
Establishing connection communication with the database for "CRUD"
For security, the database in the specific application is not allowed to be modified by direct access and all changes to the data have to be made through the code layer.
-
Any modification to the data needs to be meaningful
In the school library management system
- Borrowing and returning books
- Buy books for storage / Book abandonment out of storage
- Add freshmen and delete graduates
- Book Location Scheduling (From Jiangwan to Handan)
- ......
-
There are at least two different types of user and clearly defined Authority management.
Any information management system contains more than one type of user, so students need to implement at least two types of users with different functional privileges.
In the school library management system:
- Student : Borrowing & Returning Books
- Teachers: Purchase
- Admin: Access rights management
Hint
The design and protection of
priviledge
is very important, so think carefully
Frontend Design
- The front-end interface can be varied, but it must be user-friendly
- Web is recommanded
- Graphical interfaces can also be choosed :
Qt
,Microsoft Forms applications
... - No unity
- Simple, easy to use and portable
Technology stack
Because of the multi-user
, multi-authority
application scenario of the information management system, we recommend you to write a web application as web pages are not restricted by the client.
Django
Full-stack
Python
-
With Django, you can take Web applications from concept to launch in a matter of hours. Django takes care of much of the hassle of Web development, so you can focus on writing your app without needing to reinvent the wheel. It’s free and open source.
-
Good packaging for manipulating the database
-
Comes with its own back office administration page
Flask+jinja2
Full-stack/Backend
Python
- Doc
- Compared to django, it is
much lighter
and allows you more scope for your own design
sqlalchemy
Package of Python
-
It provides a full suite of well known enterprise-level persistence patterns, designed for efficient and high-performing database access, adapted into a simple and Pythonic domain language.
-
Good Orm Tools
Bootstrap
hmtl
css
js
-
Quality web front-end templates
-
Use it to optimise the interface
Springboot
Full-stack/Backend
java
-
A powerful enterprise-class framework
Echo
backend
go
-
a light server framework
Egg.js
backend
node.js
-
better enterprise frameworks and apps with
Node.js
&Koa
Frontend Framework
frontend
js
css
html
Submissions
- In April 23, students will need to come to the classroom to demonstrate to TAs in person
- package and uploade your application to elearning before April 23, 2021 / 23:59
- A design document with:
- All your function points
- Your database design
- Application operating environment and how to run your project
- Submit two documents, one in pdf format and one in original format(word, markdown)
Grading
Items | Weight |
---|---|
Basic score | 4 |
Good database design | 2 |
Reasonable application scenarios and functional realisation(In particular, authority) | 2 |
User-friendly interface | 2 |
Document | 2 |