Repository navigation
Deliverable 1
The software project is being developed in order to improve the sellings and the scope of a neighborhood store. Our project is called TendeUs
- In this digital age is very important that even a small neighborhood store can be promoted in the digital environment
- The product is identifying as an online store, it will allow the user buy products selled at the store and then, have different product recomendations according to a data analysis of each user looking for the most adjusted products seeing the favorite, the bought, and the rated products.
- Is expected that the seller will improve their sellings by using the software because it will allow the store to increase the reach of it in the neighborhood, and then, improve the profits of the seller.

The product is primarly an independent system. It is not part of a larger system. However it is going to interact with other softwares such as database and external APIs
-
System Interfaces: The product is going to use a local database or a database located in the cloud or on a server. The seller does not have an inventory manager from which the product can request information, so it is assumed that the seller will update the information about the inventory as soon as it changes
-
User Interfaces: The user interface is a web application that users can interact with. From there the seller will be able to update all their information and chat with customers, and these last ones will be able to perform all the other activities, from the login to the purchasing process, and even chatting with the seller to ask for information. These ones will have to be very intuitive for an expected range of people over 18 years old.
-
Hardware Interfaces: The product is merely based on software, so there are not hardware components to interact with.
-
Software Interfaces: The product interacts with some APIs for payment validations.
-
Communications Interfaces: In case the seller does not have the web application open when a purchase is made, an email or SMS might be sent using APIs
-
Memory: It is very important the product can store the information, for that reason the data will be stored in a database to ensure the persistancy of the product.
-
Operations: The product allows perfom several operations such as updating information of, searching for, adding to wishlist, reviewing, generating recommendations of the products, and chatting between customers and the seller
-
Site Adaptation Requirements: Depending on the evolution of the product, it might be necessary to migrate to other more eficient, faster and/or cheaper technologies. The product is opened to possible changes.
The product has various functionalities that in union make the product the desired system for both the seller and the customers. The most important product funtions are described below:
- Inventory management: It is an activity performed by the seller, which covers from the product registration to updating information of products, in features such as name, price, photo, description, labels and available units.
- Account configuration: Both the seller and the customer can configurate their accounts, the first one can update store information and the second one can register (if it they have not alredy done so), and if he/she wish, update their account data.
- Store browsing: Even if a person has not yet registered, he/she can browse the catalog of store products.
- Keyword search: A search for a product or a category product can be perfomed typing a keyword in the search bar.
- Shopping car: The customer can add products to the car while browsing the store before proceeding to order confirmation and payment.
- Feedback customer: This one is actually the customer posibilities of add a product to wishlist; rate and write a review about a product, and together with the purchase history help to characterize the customer.
- Generation of recommendations: As long as the customer is logged in and there are feedback and purchase history information, the system is expected to be able to determine which products show the customer in the main views.
The customer who is not logged in, only can browse by the store and search things. While the customer who is alredy logged in can enjoy of the rest of functionalities created for them, such as adding to shopping car, buying product, giving feedback and chatting with the seller
(It is important to note the system is made for the use of one seller in specific, but it can be adapted to any seller, configuring the database, and some details such as the logo, name...) The system also is made for a small seller whose main activity is retail sails, this person has a low-medium educational level. On other hand the range of customers ranges from young to old, as well as from low to medium-high educational level, therefore, a big part of this type of users might not be very familiar with the use of technologie, so it is very important the application is friendly and very intuitive
- Inaccuracy in product labeling: The product labeling is a task that depends purely on the seller, they might make a mistake while writting a label, finding the correct and sufficient categories. For this reason, the recommendation generation and search functions can be a little overshadowed.
- No real-time product availability data: The ideal case would be the seller had the online store inventory decoupled of the physic store, but this is likely not the case, so the common case is expected be one where the seller registers in the online store the physical inventory, but a problem could arise: One purchase may occur in the physical store, while two or more may be occurring in the online store and commiting the same inventory, that makes necessary that after the seller finishes the physical sale, confirm the paid orders from the online side taking into the current availability, if rejected a refund could be necessary
- Use of the software by an internet connection: The use of the software will only be provided by an internet connection because the software is a webpage that also connects to a database
- API: API stands for Application Programming Interface. Is a set of functions and procedures allowing the creation of applications that access the features or data of an operating system, application, or other service.
- Customer: is the person, usually resident of the neighborhood, who wants to buy from the seller by shopping in the website.
- Seller: is also the product owner, the type of user who is in charge of managing the online store, and who works in the physical store.
Throughout historical evolution, the utilization of technology to carry out transactions linked to acquiring goods has undergone noteworthy transformations. From early records of products many centuries ago to promotional publications of past decades, and after an unceasing stream of innovations and progress, a contemporary event of significance marked a turning point in purchasing behaviors: The rise of online commerce platforms and the adoption of these tools to obtain products were greatly propelled by this transformation, thus generating an opportunity for companies to enhance the virtual shopping experience and attract buyers due to the reach achieved by this "trend." For a substantial majority, around 80% of consumers, they believe that electronic shopping platforms offer a pleasant user experience and it is highly likely they will return to the site, thereby contributing to a further expansion of these practices. Colombia is not the exception, this country has experimented an important increase in the e-commerce sector, according to a report of CCCE(Camara Colombiana de Comercio Electronico) in the first quarter of 2021 the sellings through electronic commerce increased 44%. In addition the report says that in that period the time the trend of colombian people was to acquire everyday and basic goods and services, instead of luxurious things Ventas en linea crecieron un 44% durante el primer trimestre de 2021 en Colombia
TendeUs addresses a set of key challenges faced by sellers aiming to expand their businesses into the digital realm, as well as buyers seeking these local products but, for various reasons, are unable to access them. These issues that the software strives to resolve are:
-
Vendor Reach for Local Businesses: There are local businesses offering high-quality products, but they might not be getting the necessary visibility in the digital environment to reach more customers. TendeUs provides a platform to showcase products from these local vendors, offering them the opportunity to compete in the online market, expanding their reach and connecting them with a wider audience.
-
Disinformation and Lack of Details: Customers often face a lack of detailed information about products they wish to buy online from local businesses. TendeUs addresses this issue by providing comprehensive and accurate product descriptions, along with relevant images and essential details. This helps users make more informed purchase decisions and reduces the risk of acquiring products that don't fit their needs.
-
Difficulty Locating Products in an Extensive Catalog: In a scenario such as a convenience store, it can be a bit cumbersome to go around the store finding every product needed, in fact it can be difficult to locate products in general. TendeUs tackles this challenge by offering users a centralized platform where they can explore and search for local products by keywords and categories. This greatly simplifies the search process and reduces the time users spend searching across multiple stores.
-
Lack of Information about Promotions and Special Offers: Customers often miss out on promotions and special offers from local businesses because they lack an effective way to learn about them. This can result in missing significant savings opportunities. TendeUs addresses this concern by providing a system of personalized notifications. Customers can opt to receive alerts about promotions, discounts, and special offers from local businesses that interest them. This ensures customers are aware of savings opportunities and can make the most of available deals, thereby adding greater value to their online shopping experience.
The system will connect to the users' database through the HTTPS protocol, which ensures their integrity, while private access routes will be defined to guarantee security when using the system.
The software doesn´t have an external interface
RF01: The system shall allow users to access their accounts through a login process.
RF02: The system shall enable user registration through a registration form.
RF03: The system shall create an interface that effectively displays the available products in the store.
RF04: The system shall implement a user classification system based on roles to customize the user experience.
RF05: The system shall design functionality to categorize products into defined categories.
RF06: The system shall incorporate a search feature that enables users to search for products using keywords.
RF07: The system shall develop an option that allows users to add products to a personal wish list.
RF08: The system shall create a system that enables users to add products to a virtual shopping cart.
RF09: The system shall implement functionality that allows users to adjust quantities of products in the cart.
RF10: The system shall design a feature that enables users to remove selected products from the shopping cart.
RF11: The system shall provide personalized product recommendations based on the user's past purchase history. These recommendations should assist users in discovering relevant products that align with their interests.
RF12:The system shall analyze user interactions and behavior to generate suggestions for related or similar products. These suggestions will enhance the user's shopping experience by presenting options that are likely to be of interest, encouraging further exploration and potential purchases.
RF13: The system shall develop an option that allows users to choose their preferred payment method.
RF14: The system shall create a payment system that enables users to finalize the purchase of products in the cart.
RF15: The system shall implement a rating system that allows users to evaluate the products they have purchased.
RF16: The system shall be able to add store attributes.
RF17: The system shall be able to create new products.
RF18: The system shall be able to read the products.
RF19: The system shall be able to update products.
RF20: The system shall be able to delete products.
RF21: The system shall be able to create new users.
RF22: The system shall be able to read the users.
RF23: The system shall be able to update users.
RF24: The system shall be able to delete users.
RF25: The system shall be able to create new categories.
RF26: The system shall be able to read the categories.
RF27: The system shall be able to update categories.
RF28: The system shall be able to delete categories.
RF29: The system shall be able to create new clients.
RF30: The system shall be able to read the clients.
RF31: The system shall be able to update clients.
RF32: The system shall be able to delete clients.
RF33: The system shall develop a contact form that caters to the specific needs of clients.
RF34: The system shall implement a system that efficiently manages user permissions.
RF35: The system should incorporate a feature that displays relevant graphs for the administrator.
UR01: The system must be available for use whenever required according to the client's necessity, this will be proved using the system in a workday by the client
UR02: The system should be able to run on different devices with minimal changes to the design.This will be proved using the system in a phone verifying the usability of each part of the system
UR03: The design and navigation of the application should be intuitive and user-friendly. This will be proved showing the system to different types of people and listening the reviews of that people
UR04: Users' personal and financial data must be protected through HTTPS encryption and comply with security standards.
UR05: The system must be capable of handling a product catalog that grows according to the client's needs without affecting performance.This will be proved putting all the products of the store and be measure of the performance using each functionality
UR06: The system should allow only authenticated and authorized users to access sensitive functions and data of the virtual store.This will be proved trying to use the functionalities of the application without make registration and be measure that none of the functions are allowed
PR01: Pages must load within a maximum of 3 seconds. This will be checked taking the time since the interaction with the button until the full load in the page
PR02: Payment processing should have an average latency of less than 2 seconds, ensuring a smooth shopping experience.This will be proved using the functionality in some occasions and counting the time of execution by each time
PR03: The database that stores product information, user data, and order details should be optimized for quick data retrieval and updates loading the petitions in less than 2 seconds. This will be provided using the software for a long time be measured that the performance of each action didn´t decrease
PR04: The system must kick the user from the payment process if the time it takes to do so exceeds 10 minutes. This will be proved using the system and waiting the response of it be measure that the system kicks the user.
Customer's information:(Name, username, email, password, phone number)
Product's information:(Name,image,id,description,price,availability product, company, categories)
Categorie's information:(Name)
Store's information:(Rut, name, phone, email, description, address)
Shpping car's information:(Product Ids, customer Id, subtotal, payment method)
Product: Accessed frecuently by each time that the page is open
Shopping car information: Use frecuently by each time the customer makes a purchase
Categories information: Use frecuently each time the customer explore the webpage
The system must be a web application developed in HTML, CSS, JS, Python and Django and using libraries according to it.
The system must use django as the bussiness logical and make the request, petitions, and connections between UI and database.
The system must respect the model - view - template structuring provided by the framework.
The system must have data analysis to provide information to the web application itself.
The system must have a responsive design.