Vict Ecom 3: User Profiles and Purchases
Introduction
This week marked a significant milestone in our development journey as we dedicated our efforts to integrating basic transactions and establishing customer accounts. The primary advantage of this development is that it allows us to simulate the user experience from the perspective of our customers, a critical perspective for future development. While it's normal for a developer to concentrate on the technical components of platform construction, considering the user's experience is crucial. Collaborating with other engineers often simplifies the development process, as there is a mutual understanding of the project's objectives. However, the real challenge lies in designing a platform that accommodates all potential users. Although technology is now such a part of our daily lives and is readily accessible, not everyone is technologically proficient. Numerous instances have reminded me of the disparity between a developer's perception of a flawless website and the difficulties non-developers face in navigating or utilizing it. Our overall aim is to create a platform that is both easy to navigate and universally accessible.
Customer Authentication & Profile
This week, our focus was on defining the essential customer information required to simulate a customer account. Initially, we agreed to collect only fundamental data and consider additional properties in the future. We determined that collecting the First Name, Last Name, Email, and Password would suffice, mirroring the merchant registration process to maintain simplicity. Plans to later gather detailed information such as the customer’s shipping address, billing address, birthday, and phone number were also discussed, though these may be subject to change. Jesstin handled the backend development for customer management. My role involved updating the registration and login forms, which I completed by integrating two radio buttons to allow users to identify themselves either as a customer or a merchant during both registration and login. This identification helps in directing their requests to the correct endpoint. However, this approach, while functional, is not ideal. I propose a more streamlined process where each email is linked to one account type, and the system verifies the user’s account type during login.
Purchases & Transactions
We have enabled a basic transaction capability in our system, allowing users to “purchase” products through a 'Buy Now' button on each product page. This button is responsible for submitting the product_id, total price, and customer_id to our transaction route, facilitating the creation of a purchase record in the database. Currently, our system does not manage real financial transactions or billing, which is planned for future updates along with the introduction of a shopping cart functionality. This will support the selection of multiple products and variations by users. Transaction records are initially displayed on the customer's profile page, though the location might be adjusted as we continue to develop and I plan further customer interface components.
Future Plans
Jesstin and I have recently decided to opt for biweekly sprints for our future posts as our project becomes increasingly intricate, which allows us more frequent meetings and better strategic planning for our development, thus reducing errors and boosting our efficiency in creating blog posts. In conjunction with these efforts, I plan to introduce code snippets similar to Jesstin’s format in upcoming blogs following the migration of my website's content structure from Remark to MDX. As a team, we are setting ambitious goals for the next phases of our project, including the introduction of shopping cart features, handling multiple product transactions, separating orders from transactions, adding product variants, and simplifying the login process by implementing user roles. We are looking forward to sharing these developments and more on May 7th when we release our next batch of posts.
Open to Suggestions
If you've been following this blog series and have any suggestions, changes, or features you'd like to see implemented in future posts, I encourage you to get in touch. Your feedback is invaluable to us, and we are always eager to hear from our readers. Whether it's constructive criticism, new ideas, or general comments, your input helps us to continually improve and provide content that resonates with you. You can reach out to me directly via LinkedIn or send an email to blog@jamilmadison.com. I look forward to hearing your suggestions, comments, and concerns and am committed to engaging with each of you to enhance our blog series and/or project.