Post 3: Analysis: Online Shopping Website Project

August 14, 2024

T00730841, Post 3: Analysis

Analysis Report

Process Model Alternatives and Preferred Alternative

Two main software process models are taken into consideration for the development of the Welcome Garments eCommerce application using the MERN stack: the Waterfall Model and the Agile Development Model. These 2 models are most commonly used in software development.

Waterfall Model

A sequential and linear approach to software development is represented by the Waterfall Model. Requirements analysis, system design, implementation, testing, deployment, and maintenance are some of the distinct aspects involved. Before the next phase may start, each one must be finished with the careful preparation and documentation. This approach is very good when we have proper idea of the flow from starting to end.

The Waterfall Model is less appropriate for projects with different requirements, even if it guarantees comprehensive documentation and an organized approach. The Waterfall Model’s rigidity could result in inefficiencies given the dynamic nature of eCommerce platforms and the need for iterative adjustments based on customer feedback. More frequent changes fails this mode’s efficiency. Reviewing previous stages could result in longer development times and higher development costs due to requirement changes. Hence, we should always try to use this approach when we have less changes in the process of development or clear requirement specification.

Model of Agile Development

The Agile Development Model offers more flexible and iterative methods. Sprint-based iterative development is heavily highlighted, as it allows for continuous feedback and adjustment. Many bigger organizations such as Netflix, Spotify, Amazon, etc., also use this model in their software development process. This is useful anytime the app undergoes frequent updates. By utilizing agile methodologies like Scrum and Kanban, teams can break a project down into smaller, easier-to-manage tasks (Epics and Stories). This enables ongoing assessment and modification.

The Agile model is perfect for the eCommerce project at Welcome Garments. It enables regular modifications in response to customer input and shifting market dynamics. Due to this flexibility, we can employ client changes as per their likings. Agile’s iterative design makes it possible to develop, test, and revise features gradually, resulting in a development process that is more flexible and adaptive. Hence this model is suitable for the projects which require frequent changes, and we will use this method for our project.

Optimal Substitute

The Agile Development Model was selected for project because of its adaptability and capacity to handle changing requirements. This approach is useful for project specifications because we can encounter changes in features more often from clients. This strategy is in keeping with the objective of developing a dynamic and user-friendly online platform for Welcome Garments and supports ongoing enhancement of eCommerce application. This approach will ensure that software development is efficient and client requirements are successfully fulfilled.

Development Tools are taken into account and suggested option

When developing the eCommerce application, a number of development tools are considered. These development tools will allow us to develop the app more efficiently by providing us features such as code formatting, syntax suggestion and correction, modular folder structure, helpful extensions, etc. Integrated development environments (IDEs) and other libraries and frameworks pertinent to the MERN stack were important factors to take into account.

IDE Alternatives

  1. VSCode: The open-source, lightweight Visual Studio Code (VSCode) IDE has robust extension support. This IDE built by Microsoft is widely used for web development projects. It provides functions including debugging support, Git version control system integration, and IntelliSense, extensions library, code formatting and many more. It is appropriate for handling complicated projects due to its adaptability and simplicity of use. It’s the gem IDE for smaller to mid scale projects.
  2. WebStorm: WebStorm is a commercial IDE designed for JavaScript and front-end development. It provides robust support for React and other JavaScript frameworks, along with features for code analysis, debugging, and version control.

Both IDEs have their excellence but Visual Studio Code was chosen for this project because of its extensive extension library, integration with Git, and user-friendly interface make it an excellent choice for managing the development of a MERN stack application. VSCode’s flexibility and widespread community support further enhance its suitability for the project’s needs.

 

Alternative Languages and Preferred Version

Multiple programming languages are needed for the eCommerce application’s front-end and back-end development.

Languages Used in Front End

JavaScript: This programming language is used to make interactive and dynamic user interfaces. It serves as the primary client-side scripting language.

TypeScript: TypeScript which is a powerful programming language that improves code quality and developer efficiency by adding static typing to JavaScript. Its comprehensive type checking functionality makes it more effective and efficient at removing compile time errors.

Languages Used on the Back End

Node.js: Server-side JavaScript is made possible by Node.js, which offers a consistent language environment throughout the stack. Scalable network applications and asynchronous activities are good fits for it. It allows the same Javascript language to be used to create a server by running it in a powerful virtual machine just like a browser.

Python: Although a strong back-end programming language, Python is not included in the MERN stack and would need to be integrated with different technologies.

 

Ideal Alternative

Due to the benefits of having a single language used throughout the stack and its coherence with the MERN stack, JavaScript (and TypeScript for better type safety) is suggested for both front-end and back-end development. This approach ensures consistency, reduces context switches, and makes the most out of the MERN stack.

Alternatives to the Database and Suggested Action Plan

The eCommerce application’s primary database alternatives under consideration were MySQL and MongoDB. which are most commonly used databases out there.

MongoDB

A NoSQL database with a document-oriented architecture is called MongoDB. Because of its exceptional flexibility and scalability, it can be utilized in applications involving dynamic data structures. JavaScript and MongoDB both employ the JSON-like BSON format, which makes interaction with the MERN architecture easy. To handle big sums,

MySQL

MySQL is relational database management system which is well-known for its robustness and dependability. It is a SQL-based database that stores data following a rigid row and column architecture. An ordered schema with predefined tables and relationships is useful for the applications with well-defined data structures. However, it is less flexible than the MongoDB when managing the dynamic and changing data.

Ideal Alternative

MongoDB was selected for the project because of its flexibility and ease of the integration with the MERN stack. Because of its ability to handle enormous data quantities and adapt to the changing requirements, it’s the ideal choice for eCommerce applications. Hence we will be using this database in our app development.

 

Solution Overview

  1. Develop an E-commerce Website:
  • Technology: React
  • Details: Building responsive and interactive front-end using React, leveraging its component-based architecture for reusable UI components and a consistent user experience.
  1. Implement E-commerce Functionalities:
  • Technology: React, Node.js, MongoDB
  • Details:
    • Front-end: React manages product listings, dashboards, and shopping cart components.
    • Back-end: Node.js handles server-side operations and APIs, with MongoDB managing product details, user data, and orders.
    • Payment Integration: Integrating PayPal Braintree for secure transactions.
  1. Create and Optimize Content for SEO:
  • Technology: React, Node.js
  • Details: Using server-side rendering with Node.js to enhance search engine visibility, with React components managing content.
  1. Ensure Mobile Responsiveness:
  • Technology: React with Bootstrap
  • Details: Employing responsive design principles and Bootstrap to ensure the website is user-friendly across all devices.
  1. Expand Customer Base and Increase Sales:
  • Technology: Mailchimp
  • Details: Utilizing Mailchimp for email campaigns and customer engagement, helping to inform customers about new products and promotions.

 

Model of Software Development:

The Agile Development Model is implemented, making use of iterative development and sprints to guarantee ongoing advancement and adjustment. Important phases include:

  1. Gathering Requirements: To meet the demands of the client, specific specifications are obtained.
  2. Regarding every Deliverable: Processes for analysis, implementation, testing, and review ensure that every deliverable matches requirements.
  3. Final Refinement: The output is improved to satisfy exacting standards.
  4. Repeat these steps: Alignment with the client’s expectations is achieved through constant communication.

Justification

The Agile methodology promote advancement, dialogue, and flexibility, permitting iterative development and responsive modifications in response to customer input. This approach is essential to meeting the eCommerce project’s changing requirements and guaranteeing its success.

 

 Post 3