Projects will be carried out by implementing a Web site with analysis functions simulating big data analysis.
Korean text is NOT REQUIRED in the current project. But you may use Korean text, if needed.
Apache, PHP and MariaDB (or MySQL) database => Using XAMPP is encouraged.
❗ Caution : XAMPP uses MariaDB. MariaDB and MySQL are very similar because the code base of MariaDB is MySQL.
Your codes will be ported to a server by your team to show the demo. so please follow the guidelines to make your installation of the codes easy. And the server will have XAMPP installed.
(1) Theme of the project should be one of the following
(However any copying of existing Web site ideas, material or use of codes developed by somebody else will have the result of an F grade) :
Analysis of Clothes Sales Data
Analysis of Traffic Data
Analysis of Travel Data
Analysis of Restaurant Data
(2) Database creation scripts(dbcreate.sql) and data insert scripts(dbinsert.sql), drop table scripts(dbdrop.sql) should be created (SQL scripts), along with a dump file of the database(dbdump.sql)
The database should be created beforehand with a database script (file containing USE DATABASE and CREATE TABLE, INSERT, etc. SQL statements for initializing the sample database).
These scripts can be used to create the database, and also clean up the database to upgrade or recreate the database.
The scripts can be executed by the "source" command
: Example) source myscript.sql
(2-1) The database creation script should not only create tables but also have primary keys, foreign keys, and index creation statements.
(2-2) The database insert script should include insert statements into the database to initialize the sample database # upgrade
(2-3) The drop table script should include drop table statements to delete all of the tables from the sample database
(2-4) A dump file of the database should also be provided #efficient command, (create&insert)
❗ Caution: Make sure that the script will work before submission, so that these will also work in the evaluation system
(3) INSERT, DELETE, UPDATE, SELECT related functions should be implemented in the Web site. # select는 advanced analysis와 관련 #모든 테이블에 4개가 다 들어갈 필요x 하나만 들어가면 됨
(4) Some SELECT queries should include SUM, AVG, etc (aggregation operations) and also GROUP BY statements
(5) Provide 3 kinds of advanced analysis functions to users for the data that is stored in the database #필수
3 kinds of advanced analysis functions are : (1, 2, 3 should all be satisfied)
1) providing aggregates (sum, average, max, min, etc.) based on complex groupings (group on several columns), #이런 것들 중 1가지 또는 몇 가지(+group by)
2) rollup, drill down on OLAP data #rollup(높은 수준의 데이터) drill down(디테일한 데이터)
3) ranking, or windowing #랭킹, before, after data 윈도우, average
❗ caution: providing same function on different data does not count as additional function
(such as calculating complex average on data A, and then using similar complex average on data B will be counted as 1 kind of analysis function)
(6) User input should include various types of controls such as text box, buttons, etc. (Not just a single text box and single submit button!)
(7) Use PHP sessions to store and retrieve information needed between some pages displayed (login 기능)
(8) Use at least one transaction in the database for some part of the project.
(1) Configuration variables : Each team will be assigned a (MariaDB) Database user id, password, and database name to use afterwards in the evaluation system (so make sure you can easily change these in your codes or configuration file before submission) (간단한 거로 만들기)
(2) Each team php codes will be existing in a folder with the team name under htdocs. Example) team05 ==> htdocs/team05
(3) There will be a test and installation (엄청 짧은) period for you to install the codes on the demo server before the final project presentation.
(1) Submission items must be provided as the following :
(2) Project proposal (deadline : Nov. 6th) : 1 page per team includes team members, simple project description, schedules including past tasks
(3) Project final submission (deadline : Nov. 14th) : database creation and initialization SQL script, drop table SQL script, DB dump file, PHP files, report, English paper
Final project report (Korean or English) should include contents : team formation, project description, schedules, database schema as ER diagram, overview of PHP code structure as a diagram, show how above mentioned requirements [Project results (1)-(8)] are satisfied by showing relevant codes, team member responsibilities, detail implementation results by each team member (database, php, etc)
English paper : very short conference or journal style
[sample template attached] A sample English paper template for the Team Project will be provided as an attached file. The English paper template may be used, or a similar template may be used. The submission of your English paper will be an initial submission and you will be able to later on update your paper based on your detail project final results and resubmit(just the english paper) an upgraded version of your paper during the final weeks of the semester.
The paper contents may contain (as usual paper publications) introduction, related work (to compare with other similar existing work), requirements and system design, implementation, experiments (user scenarios), conclusion (and future work), references.
(4) Project demo submission (deadline : Nov. 16th) : presentation ppt file, demo video (used for backup, real demo will be done during presentation)
Powerpoint slides should be in English
Presentation language is English
❗ Caution : Responsibility of members should be well divided, and all work by each team member should be explicitly shown in results. Evaluation will also consider each team member effort.
The implementation documentation, English conference paper mentioned below are the same as the documents mentioned above in [Submission items-(3)] for Project final submission report, English paper.
The work by each person can be distributed to several different pages, and each page can be created by several people (such as half and half), but the total amount of work should add up for each person's requirements. This should be described in project report and commented in codes.
The DB operations can be distributed to different pages with different amounts of operations (such as one page having only INSERT, and another page having DELETE, UPDATE, SELECT).
The size of the tables are not strongly restricted but in order to show a reasonable demo it is recommended to have roughly about a total of at least 500 records for all of the tables. An example is A table containing 100 records, B table containing 200 records, C table containing 150 records, and D table containing 50 records. This should be provided in the DB initialization SQL script.
For 4 person team : minimum 3 tables created and used per person, minimum 2 web pages per person (each page with at least one kind of DB operation, Minimum 3 page implementation documentation per person, minimum 1.5 page English conference paper per person)
=> total : minimum 12 tables, 8 web pages, 12 page documentation, 6 page English paper # 분배하는 가이드라인일뿐, 이대로 할 필요는x. 누가 뭘 했는지는 적기
public data
normalization
반복되는 데이터
예) 이대 컴공과 학생들
break out university or department table이 다 반복됨 columns
make it into normalize data