- Provide a platform for university students to quickly search for and trade used textbooks based on their semester schedules.
- Reduce financial burdens by facilitating the exchange of second-hand textbooks.
- Develop a user-friendly UI using Flutter.
- Build the backend using Node.js and MySQL.
- draw ERD from the skatch & design relational tables based on ERD
- Develop cross-platform UI using Flutter.
- Design intuitive user experience (UX).
- Build the server using Node.js.
- Design and integrate MySQL database.
- write efficient queries to handle data
Frontend | Backend |
---|---|
HyoYoung Baek | HeeJun Seo |
---|---|
@HyoYoung0829 | @HeeJohn |
Name | Role |
---|---|
HyoYoung Baek | Design, UI Implementation, Backend Implementation, Client Request Handling, DB Design, Testing |
Huijun Seo | UI Implementation, Backend Design and Implementation, DB Design, SQL Processing, Testing, Optimization |
Task | Oct (3rd Week) | Oct (4th Week) | Nov (1st Week) | Nov (2nd Week) | Nov (3rd Week) | Nov (4th Week) | Dec (1st Week) | Dec (2nd Week) |
---|---|---|---|---|---|---|---|---|
Planning and Page Layout | โ๏ธ | โ๏ธ | ||||||
UI Creation and Functionality | โ๏ธ | โ๏ธ | โ๏ธ | |||||
DB Design and Creation | โ๏ธ | โ๏ธ | ||||||
Query Writing & server development | โ๏ธ | โ๏ธ | โ๏ธ | |||||
Testing and Maintenance | โ๏ธ | โ๏ธ | โ๏ธ |
Date | Phase | Task Details |
---|---|---|
10.20~ | Planning and Page Layout | - Write Capstone Design plan, configure services - Design UI, abstract DB - Write MVP, plan schedule |
10.23 ~ 11.13 | UI Creation and Functionality | - Create MVP UI, admin interface - Implement service functions |
11.06 ~ 11.30 | DB Design and Creation | - Design ERD and external schema - Separate tables and relational tables - Implement tables using DBMS |
10.23 ~ 11.30 | Query Writing & server development | - Assign roles and permissions to admin - Develop backend - Write queries according to client requests |
12.01 ~ 12.06 | Testing and Maintenance | - Test service and receive feedback - Handle errors and exceptions, modularize code, optimize - Write final report |
- Reduce financial burden through second-hand textbook transactions.
- Provide a convenient system for quick and efficient textbook transactions at the start of each semester.
- Offer an intuitive user interface and experience.
- User registration and login
- Textbook search and transaction based on schedule
- Manage transaction appointments and locations
-
User Registration and Login The platform provides a service for users to register their schedules or facilitate book transactions between students. Hence, it needs to store and manage user information. The User table requires 'student_id, name, phone number, password,' with student_id being unique for each student to distinguish users. Also, session ID is assigned to manage logged-in users and prevent double login.
(Registration): student_id, name, phone number, password (Login): student_id, session ID
-
Timetable Registration and Viewing Logged-in users register the courses they are taking into their timetable. This allows students to quickly find and purchase necessary books. The relationship between User and Class tables is established to create personal timetables.
(Course Information): class_id, class_name, professor, credit (Timetable): student_id, class_id
-
Book Sale Registration Users are categorized into buyers and sellers. The book sale registration service allows sellers to register used books for sale. Each book has unique conditions, and details like highlights, pencil marks, pen marks, dirt level, fading, and tear degree are stored to provide comprehensive information to buyers.
(Book Basic Information): book_id, book name, author, price, publisher, published year, upload time, student_id, class_id (Book Condition Information): highlights, pencil marks, pen marks, dirt level, fading, tear degree, book_id
-
Book Search for Purchase Buyers can search for books in two ways: through a general search by entering the course name or a timetable-based search using the registered timetable.
(General Search): class_id, class_name, book_id (Timetable-based Search): timetable information (user info, class info), book_id (Search Result Sorting): upload time, price, condition, book_id
-
Meeting Buyers select desired books and send purchase requests to sellers. Upon acceptance, contact information is exchanged, and meeting details are stored, including time, place, and location coordinates.
(Purchase Request): buyer student_id, book_id, seller student_id (Meeting): (buyer, seller) name, (buyer, seller) phone number, book_id, meeting time, meeting place (Map): latitude, longitude
<ENTITY>
- User (student_id(ํ๋ฒ), name(์ด๋ฆ), phone(์ ํ๋ฒํธ), password(๋น๋ฐ๋ฒํธ))
- Session (student_id(ํ๋ฒ), session_id(์ธ์ ID))
- Class (class_id(๊ณผ๋ชฉ ์ฝ๋), class_name(๊ฐ์ข ๋ช ), professor(๊ต์๋ช ), credit(ํ์ ))
- Book (book_id(์ฑ ID), book_name(์ฑ ์ด๋ฆ), author(์ ์), price(๊ฐ๊ฒฉ), publisher(์ถํ์ฌ), published_year(์ถํ์ฐ๋), upload_time(๋ฑ๋ก ์๊ฐ), student_id(ํ๋ฒ), class_id(๊ณผ๋ชฉ ์ฝ๋))
- Status (book_id(์ฑ ID), light(ํ์ด๋ผ์ดํธ), pencil(์ฐํ), pen(๋ณผํ), dirty(์ค์ผ๋), fade(์ฑ ๋ฐ๋จ), ripped(์ฐข๊น))
<RELATIONSHIP>
- login (๋ก๊ทธ์ธ) = User(student_id(ํ๋ฒ)) + Session(session_id(์ธ์ ID))
- Class_table (์๊ฐํ) = User(student_id(ํ๋ฒ)) + Class(class_id(๊ณผ๋ชฉ ์ฝ๋))
- Class has Book (๊ฐ์ข์ ๊ต์ฌ์ ๊ด๊ณ) = Book(book_id(์ฑ ID)) + Class(class_id(๊ณผ๋ชฉ ์ฝ๋))
- Book has Status (์ฑ ๊ณผ ์ฑ ์ํ์ ๊ด๊ณ) = Book(book_id(์ฑ ID)) + Status(book_id(์ฑ ID))
- register (ํ๋งค ๋ชฉ์ ์ ์ฑ ๋ฑ๋ก) = User(student_id(ํ๋ฒ)) + Book(book_id(์ฑ ID))
- Meeting (์ฝ์ ์ฑ์ฌ) = User(student_id(๊ตฌ๋งค์/ํ๋งค์ ํ๋ฒ)) + Book(book_id(์ฑ ID)) + meeting_time(์ฝ์ ์๊ฐ), place(์ฝ์ ์ฅ์), approval(์น์ธ ์ฌ๋ถ), latitude(์๋), longitude(๊ฒฝ๋)
<CONSTRAINT>
-
User table - Session table: When login is successful, a session_id is assigned to the user. Therefore, session_id must exist only if the user exists. If student_id is deleted from the User table, the corresponding session_id should also be deleted. Hence, a CASCADE constraint is set.
-
Book table - Status table: Each book listed for sale has a unique condition. The condition exists because the book exists. To ensure data integrity, if a book is deleted from the Book table, the corresponding status should also be deleted. Hence, a CASCADE constraint is set.
-
User table - Class_table table: The personal timetable (Class_table) created by a student also needs constraints. If a student drops out or takes a leave of absence, the timetable data becomes unnecessary. Therefore, if a student's information is deleted from the User table, the corresponding timetable should also be deleted. Hence, a CASCADE constraint is set.
-
Class table - Book table: The platform matches textbooks to specific courses. If a course is deleted from the Class table, the textbooks referring to that course should also be deleted. To ensure data integrity, a CASCADE constraint is set.
- Notify users during transaction requests and acceptances
- Register and manage second-hand textbooks
- Input and edit textbook condition details
- Search for and request desired textbooks
- Manage transaction status and set appointment times/locations
- User registration and login
- Edit and delete user information