Skip to content

Webay is an open-source webstore mock program that implements efficient search algorithms to sort through thousands of mock listings.

Notifications You must be signed in to change notification settings

MiguelAgueda/Webay-Backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Webay-Backend Documentation

To Do

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

General Program Structure

Webay

1. Introduction

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.

Project description

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.

Objective/Purpose

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.

2. Background/Related studies

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.

Background knowledge that you are inspired.

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.

Summaries and notes from your sources (research papers).

3. Methods

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.

What other sources were available (e.g. Github, StackOverflow, etc)

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.

4. Implementation

How you implemented your project

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.

Program In Action

Algorithm discription

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.

5. Discussion

Challenges that you have faced

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.

How to overcome those challenges

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.

Stories that you want to share with the class

6. Conclusion

Lessons that you learned from this project

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.

How to use this project experience as leverage to get to the next level

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.

7. Reference

your resources, at least five academic articles (book or research paper).

Python Documentation: JSON

Python Documentation: Argparse

Learn Python the Hard Way 3rd ed., Zed Shaw

About

Webay is an open-source webstore mock program that implements efficient search algorithms to sort through thousands of mock listings.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages