1 - INTRODUCTION
2 - DESIGN
3 - DATABASE
4 - UML
Online Book Store is a desktop application where books, music and magazines are ordered by customers. Customers can access product information. For book such as book name, ISBN number, the author, the publisher, the page number, total price. For magazine such as magazine name, the issue, the type of the magazine, total price. For musicCD such as the name of the singer, the type of the music, total price. When registering to the application, the customer enters a unique user name, name, password, address and a valid email address, and can change her/his password on the settings panel if she/he wishes. After the customer has registered to the application, he/she can add or remove products from his/her cart. He/she can make installments with credit card or pay cash. He/she can choose the shipping company to deliver. The invoice is sent to the user mail in PDF format, After the payment is made, the invoice is automatically opened on the screen by the pdf reader. The customer can view his/her past orders. Customer information, product information, customers’ past orders, products in the cart are kept in the database (sql). Passwords are saved to the database in encrypted form for customer security. There is only one admin in the application. (U:admin / P:admin) Admin can add, delete, update books, magazines and musicCDs also list product information from the settings panel in the application. Customer can't access the product change interface that admin can access.
If the person who using the application does not have an account, she/he is directed to the registration screen via the create account link label to create an account. Admin can’t access the users’ password. Passwords are kept encrypted form in database after user registration. If customer has an account, if username and password that entered the textboxes matches customer’s information on database(sql) he/she logged in.
MainWindow’s load function load the products from database and customer see randomly products on dashboard, under the title “Editor’s choices”. Header has an animated text for welcome, it says good morning, good evening, good night depending on time.
When the customer clicks the Play icon which resides on the musicCD panels, a sample song is played for him/her.
Customer can see his/her order history on this screen with details.
This screen for customer’s shopping cart. User can see and do actions all products on his/her cart on that screen.
Personal information section automaticlly filled from database without phone number. When customer select and fill all the necessary sections, he/she can see total payment on the screen with taxes and shipping fee. When its done, the invoice appear on the screen and it will send to customer’s mail address on pdf form rapidly.
Admin can add, list, delete and update all the products on this panels. Also, admin can see all the customers on customer list.
If loginned user is not an admin, settings panel looking like this. Customers can change their informations with password confirmation.
The data were kept in the online MsSQL database. For this, an online database has been created in Microsoft Azure account. All users who have access to the database have access, that is, the program can be run without the need for extra installation, but still the database creation script has been added under version control. A database table named Tbl Customer has been created to hold user data. For the products, 3 separate database tables named Tbl_Book, Tbl_Magazine and Tbl_Music have been created. For past orders, the Tbl_Bill and Tbl_BillProduct table have been created. The tables in the database and their relations are as follows. Database connection of the project added DbConnection class.
You can set our database on your computer from here. After creating you have to get your SQL connection string, after that you have to enter 28th column in DbConnection.cs class.
Since we wanted to ensure that only one object from our customer class was created in the application we will do, we applied Singleton Design Pattern. This customer object, which we will create in our application with Singleton Design Pattern, will prevent the creation of a second customer object thanks to Singleton Pattern. While creating a User Control according to the added product in our project, we used Factory Design Pattern so that the user does not change the code in every choice. Added product's type determines User Control's type. Also we could use Proxy Design Pattern, but we had no time.
- Muzaffer Arda Uslu
- Eda Çam
- Onur Akkepenek
- Aleyna Işıkdağlılar
- Berkay Gönenç Göksal