An old project I did - A web app for bdo item storage and analysis with real-time price tracking and custom notifications.
| Cache | ||
| Config | ||
| Controller | ||
| db | ||
| Engine | ||
| Model | ||
| Repository | ||
| Resources | ||
| Service | ||
| Util | ||
| vendor | ||
| View | ||
| .gitignore | ||
| composer.json | ||
| composer.lock | ||
| index.php | ||
| README.md | ||
🚀 Overview
A web project for storing and analyzing items, including price development, search, notifications, and automatic API synchronization.
📝 To-Do List
🛠️ Authentication & User Sessions
- Set up login and session system
- Users can log in and remain logged in
- Stored data (e.g., pinned items) is user-specific
- Enable registration (if necessary)
- Users can register
- Passwords are hashed (bcrypt or similar)
- Session handling for logged-in users
- Sessions are deleted upon logout
- Security measures (token, CSRF protection, etc.)
📂 Database & API
- CHECK IF MULTICURL IS EVEN NECESSARY BECAUSE HERE states "If multiple ids are given..."
- Store items in the database (all data except price information)
- Retrieve and store all items from the API
[ ] Clear the database beforehand to have a fresh data basis- Retrieve and store prices for each item using the ID
- Store the highest pre-order price and the lowest seller price
- Store images (as text in the DB or as files in the cache directory for load time optimization)
- Revise ApiDataRepository
- Revision → Separate APIs into individual repositories
📊 Price Calculation & Display
- Dropdown for price overview:
- On the homepage
- [] On detail pages
- On the homepage
- Determine daily item throughput
- How many items are listed daily?
- How many items are sold daily?
- Price forecasts based on historical trends
- Estimation for price changes in the coming days (only meaningful with sufficient data)
🏠 Homepage & Pinned Items
- Homepage for logged-in users
- Displays personalized data
- Includes a list of pinned items
- Pin items and remove them
- Users can pin items
- Pinned items remain stored in the database
- Individual pinned items per user
🔍 Search & Navigation
- Search function to directly find items
- Main menu with categories for better overview
🔔 Notifications
- Set up notification system
- Customizable notifications for each item
- Bell icon on the item page
- Popup/banner to select criteria for notifications (price, availability, etc.)
📈 Detail Page with Graphs
- Create item detail page
- Graphically display price development
🔄 Automatic Updates & AJAX
- Call API every few seconds
- Automatically update data
🔧 Architecture & Structure
-
Refactor individual classes and files
feat: – Features. doc: – Documentation. fix: – Bug fixes. bug: – Bug-related fixes or attention. style: – Styling changes. perf: – Performance improvements. test: – Tests. chore: – Chores like refactoring, dependency updates, and routine changes. ci: – Continuous integration. misc: – Miscellaneous changes.