Skip to content

HeeJohn/book_store

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

30 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

University Book Exchange Platform

An application for students to easily trade textbooks


๐Ÿ™Œ Project Overview

Vision and Goals

  • 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.

Technical Goals

  • 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

๐Ÿคž First time - Challenges

Frontend

  • Develop cross-platform UI using Flutter.
  • Design intuitive user experience (UX).

Backend

  • Build the server using Node.js.
  • Design and integrate MySQL database.
  • write efficient queries to handle data

๐Ÿ“š Tech Stack

Frontend Backend
Flutter Dart Node.js JavaScript MySQL

๐Ÿ‘ฅ Team Members

HyoYoung Baek HeeJun Seo
@HyoYoung0829 @HeeJohn

Team Roles

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

๐Ÿ“†Project Development Schedule

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 โœ”๏ธ โœ”๏ธ โœ”๏ธ

โณ Detailed Development Plan

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

๐Ÿ“Œ Requirement Analysis

  • 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.

Functional Requirements

  • User registration and login
  • Textbook search and transaction based on schedule
  • Manage transaction appointments and locations


๐Ÿ–ผ๏ธDB design

1. โ˜๏ธ Requirements Analysis

  • 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

2. ๐Ÿ—๏ธ Conceptual Database Design (ERD)

<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.



๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ERD

erd



๐Ÿ‘ฃ Features overview

image

โ˜๏ธ Main Features

๐Ÿ”” Notification box

  • Notify users during transaction requests and acceptances

๐Ÿ“– Book Management

  • Register and manage second-hand textbooks
  • Input and edit textbook condition details

๐Ÿค Transaction System

  • Search for and request desired textbooks
  • Manage transaction status and set appointment times/locations

๐Ÿ‘ฅ User Management

  • User registration and login
  • Edit and delete user information


image

image

image

image

image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published