CSE 360 Fall 2024 Project
- Overview
- Features
- Technologies & Frameworks
- Usage
- Team Members
- Contributions
- Testing
- Data Design
- Conclusions
- Contact
-
Technical Presentation:
View Presentation -
Phase 3 Buyer and Seller functionality video:Link
-
Phase 3 Admin functionality video: Link
-
Final Technical Presentation: Link
SunDevil Bookstore is a comprehensive online platform designed to facilitate the buying and selling of books within the university community. Developed as part of the CSE 360 Fall 2024 project, the system supports multiple user roles, including Buyers, Sellers, and Admins, each with distinct functionalities. The application ensures a seamless user experience through a responsive GUI and robust backend services.
-
Sign-Up and Login
- Sign-Up: Users can create accounts by providing their first name, last name, email, password, and username. By default, users are assigned the "Buyer" role. Users can request the "Seller" role, which requires admin approval.
- Login: Unified login for Buyers, Sellers, and Admins with input validation and error messaging. Includes a secure "Forgot Password" flow with email recovery and OTP verification.
-
User Profile Management
- Users can edit their personal information, including name, email, and password. Password resets require current password validation.
-
Buyer Functionalities
- Book Browsing: Browse books with filters for category (e.g., Computer Science, Mathematics) and condition (Like New, Moderately Used, Heavily Used). Search functionality by title or author.
- Cart Management: View cart items with details like ISBN, publisher, condition, price, and totals including tax and admin fees. Users can adjust quantities, remove items, and proceed to checkout integrated with myASU finances.
-
Seller Functionalities
- Book Listings: Sellers can list books by providing title, condition, category, original price, and images. Selling prices are calculated by the system and require admin approval.
- Listing Management: Manage current listings with status indicators and view sales statistics categorized by category and revenue.
-
Admin Functionalities
- Statistics: Access sales data by category, condition, and time period, visualized through graphs and tables.
- User Account Management: View, add, edit, delete, promote/demote users, and ban or restrict accounts.
- Transaction Overview: Detailed view of all transactions with filtering, sorting, and CSV export capabilities.
- System Configuration: Adjust pricing formulas, condition multipliers, and admin profit margins.
- Input Validation: Ensures data integrity across all user inputs.
- Role-Based Access Control: Tailors functionalities and views based on user roles.
- Error Handling: Provides context-specific error messages to enhance user experience.
- Data Export: Allows exporting user and transaction data in CSV format.
- Dynamic Pricing: Implements modifiable condition adjustments and profit margins.
- Responsive GUI Design: Delivers a consistent and intuitive user interface across different roles.
- Java: Core programming language used for application logic.
- JavaFX: Framework for building the graphical user interface.
- SQLite: Lightweight database for data storage and management.
- Maven: Build automation and dependency management tool.
- Jira: Project management and issue tracking tool used for team collaboration, task assignment, and progress monitoring.
Upon launching the application, users can:
- Sign Up as a Buyer or request Seller access.
- Log In using their credentials.
- Browse and Search for books based on various criteria.
- Manage their Cart and proceed to checkout.
- Sellers can list new books and monitor their sales.
- Admins have access to comprehensive system controls and analytics.
Team 19
- James Hu (jameshu-asu)
- Jaya Adithya Pavuluri (SCRUM Master) (jay2044)
- Sahil Sinha (Team Leader) (sayhilel)
- Shubham Khalkho (Shubhoom123)
- Vineet Yerramsett (vineety-cs)
SunDevil Bookstore System:
- Core Features: Implemented user authentication, profile management, buyer and seller functionalities, and admin controls.
- Key Technical Elements: Ensured robust input validation, role-based access, comprehensive error handling, data visualization, and responsive GUI design.
- James Hu, Jaya Adithya Pavuluri(SCRUM Master), Sahil Sinha(Team Leader): Developed the GUI walkthrough and project overview sections.
- Shubham Khalkho: Led the GUI walkthrough development.
- Vineet Yerramsett: Managed the project overview documentation.
- Manual Testing: Verified UI accessibility, field validations, navigation flows, and error handling.
- Automated Testing: Ensured backend data consistency, input validations, and business logic integrity.
- Login & Authentication: Validated role-based access and secure password handling.
- Profile Management: Ensured accurate updates to user information.
- Book Browsing & Cart Operations: Tested search filters, cart updates, and checkout processes.
- Admin Controls: Verified user management, transaction overviews, and system configurations.
- Data Export: Confirmed accurate CSV exports of user and transaction data.
- Password Reset (Forgot Password): Not implemented due to limitations with live database and SMTP setup.
- Transaction Processing: Payment integration pending, requiring an online payment provider.
- Advanced User Management: Features like banning and promoting users were excluded due to time constraints.
- Transaction Filters: Additional database functionalities needed for advanced filtering were not implemented.
-
Users
- Attributes: ID, name, email, role, status.
- Relationships: Managed by
UserManager
andSessionManager
.
-
Books
- Attributes: ID, title, author, price, condition, seller_id.
- Relationships: Handled by
BookListings
andCart
.
-
Cart
- Attributes: Selected books, quantities, total cost.
- Relationships: Controlled by
CartController
andPaymentSystem
.
-
Transactions
- Attributes: ID, buyer_id, seller_id, amount, admin_profit.
- Relationships: Managed by
TransactionManager
.
-
ApprovalSystem
- Relationships: Interfaces with Admin and
ListingManager
.
- Relationships: Interfaces with Admin and
-
SalesStatisticsCalculator
- Relationships: Utilizes Admin and
Database
.
- Relationships: Utilizes Admin and
- Users:
id
,name
,email
,role
,status
. - Books:
id
,title
,author
,price
,condition
,seller_id
. - Transactions:
id
,buyer_id
,seller_id
,amount
,admin_profit
.
- MVC Architecture: Maintained a clear separation of concerns, enhancing code maintainability.
- Database Management: Centralized interactions through
DatabaseManager.java
ensured efficient data handling. - Team Collaboration: Effective communication and regular updates facilitated smooth project progression.
- Frontend Technology Shift: Transitioning from HTML to JavaFX caused initial delays.
- Feature Scope Limitations: Certain features like comprehensive password reset and advanced transaction filtering were not implemented due to time constraints.
- Regular Client Engagement: Continuous check-ins help accommodate evolving requirements.
- Comprehensive Documentation: Maintaining clear and detailed documentation supports better collaboration and project tracking.
- Early Phases: Minimal defects with straightforward issues.
- Phase 3 Challenges: Encountered approximately 30 defects related to merge conflicts and complex bugs, which were resolved collaboratively.
For any queries or contributions, please reach out to the team members via their GitHub profiles:
- James Hu: jameshu-asu
- Jaya Adithya Pavuluri: jay2044
- Sahil Sinha: sayhilel
- Shubham Khalkho: Shubhoom123
- Vineet Yerramsett: vineety-cs
© 2024 SunDevil Bookstore Project Team