- Add Add Listing option.
- Add Edit Listing option.
- Add Delete Listing option.
- Add Search Titles option.
- Add Price Sorting option.
- Add Print Listings option.
- Finish project proposal.
- Upload screenshots of program in action to shared Google Doc.
- Proofread answers, expand where possible.
- Submit Google Form with following answers.
Webay is an open-source webstore backend. Currently, developers can access functions for adding/modifying/deleting listings, sorting listings based on price, as well as searching through listing titles for specific items.
We will be creating a mock version of the Ebay webstore. This mock store will have price sorting capabilities, a general search ability, and the ability to create/edit/delete listings. Our mock listings will be generated using a list of preselected objects and associated adjectives.
The purpose of creating this mock store is to learn how to implement search algorithms in an actual use-case situation. This is also a stepping stone towards our final project of creating a complete webstore application.
Our programming backgrounds cover many languages such as Java, Javascript, Python, and Arduino. We will use previously learned concepts along with newly learned concepts to complete a functional webstore backend.
One of the members of our group was keen on building a functional webstore. We decided to use this project's deadline as motivation to both start and finish this project in a timely manner.
How you actually implemented your project (e.g. referring textbook examples or using open-source libraries such as TensorFlow or algorithms that you've found from research articles)
Our project was implemented using open-source libraries included in the Python Standard Library. Of those included, we used Argparse, JSON, Operator, Random, and Time. We also referenced online articles about sort algorithms and best practices.
We used StackOverflow for quickly resolving many library specific errors. Most of these errors occurred due to improper use of a library's methods. We also used GitHub to reference other people's projects. YouTube was another tool that we used when we were stuck or trying to learn.
We have created an API for a webstore backend. This API is accessible via the command line within the project folder. The API is also accessible via function calls by importing our defined classes and functions.
Program use cases (with screenshots). If you want to use screenshots, upload your screenshots to your One Drive or Google Drive and share it with me.
We used the Quicksort algorithm to deal with sorting our data. This was done by choosing a reverence and creating lists bigger and smaller based off of that reference. They were called recursively and output a sorted order when done.
We faced many small issues that were related to an improper use of an imported library. Examples include writing to a read-only file, passing incompatible parameters, and misspelling function names. We also faced larger challenges when storing data, reading data, and sorting data. We had accidentally overwritten our listing data file with an empty file, multiple times. Luckily we were not handling live data.
Passing incompatible parameters to a function was generally resolved by carefully reading the generated error messages, looking for the correct parameter type, and fixing the function call. Misspellings were resolved by carefully rereading each library's documentation, looking for the function name we thought we were calling. These issues were easy to resolve.
The issues that required more thought were those relating to our storage and access of file data. To manage this, we developed helper functions to safely read and write data whenever necessary.
In developing this project, we have learned that figuring out the best way to organize large amounts of data can be difficult. We also discovered the value of a Version Control System, such as git, when working collaboratively within a group.
In this project, we learned how to access data that is stored on a file. We implemented a sorting algorithm, title search, and a listing editor into a callable API. We can now use this API as a general framework for fitting several use-cases.
Python Documentation: Argparse
Learn Python the Hard Way 3rd ed., Zed Shaw