Day 2: Project description and functional requirements

logo

Virtual Assistant, Web Design and bookkeeping services

I’m embarking on a venture to establish a vibrant marketplace tailored for local communities, where sellers can showcase their services through gigs and offer homemade products. Meanwhile, buyers will have the opportunity to explore and purchase these offerings. Additionally, the platform will feature sections dedicated to valuable web development resources and tax accounting services.

Upon registering, users will initially be designated as buyers, with the option to seamlessly transition into sellers. This dynamic interchangeability ensures fluid participation within the ecosystem, where buyers can easily evolve into sellers, and vice versa.

The platform will encompass various services, each serving a distinct function within the ecosystem:

  • API Gateway: Acting as the nexus for microservices, facilitating communication between clients and various service components. While functioning as a microservice itself, it primarily orchestrates interactions within the system.
  • Notification Service: Responsible for dispatching emails to users, serving as the primary means of communication, at least initially.
  • Authentication Service: Facilitating user authentication through email and username credentials.
  • User Service: Managing the profiles of both sellers and buyers within the platform.
  • Gig Service: Handling the creation, retrieval, updating, and deletion (CRUD) operations related to gigs. Additionally, it will interface with AWS ElasticSearch to facilitate robust search functionality, with ElasticSearch and Kibana employed for monitoring and logging purposes.
  • Chat Service: Facilitating communication between buyers and sellers through a messaging system integrated within the platform.
  • Order Service: Managing orders and payments, initially integrated with Stripe, with potential for further decoupling in the future.
  • Review and Ratings Service: Empowering users to provide feedback and ratings, fostering transparency and accountability within the marketplace.

In terms of functional requirements, the platform must encompass essential features and behaviors expected by users, including but not limited to:

  • User authentication functionalities such as account creation, login, and password reset.
  • User profile management, enabling users to create and update their seller profiles.
  • Robust search capabilities, allowing users to discover gigs based on various filters and criteria.
  • Messaging functionalities enabling direct communication between buyers and sellers.
  • Mechanisms for users to provide ratings and reviews for sellers.
  • Seamless integration of payment gateways, initially utilising Stripe.
  • Comprehensive order management functionalities, facilitating the viewing of active, completed, and canceled orders, with cancellation options available for sellers.

On the other hand, non-functional requirements focus on the quality attributes and constraints that dictate the system’s performance and user experience:

  • Scalability: The platform must be capable of scaling to accommodate increased loads during peak periods.
  • Availability: Ensuring high availability, with the system operational 99.99% of the time, supported by failover mechanisms in case of server failures.
  • Reliability: Prioritising system dependability to instill trust and confidence among users.
  • Maintainability: Upholding coding standards, comprehensive documentation, and regular code reviews to ensure code maintainability. Automated testing procedures should also be implemented.
  • Usability: Emphasising user-friendly interfaces and intuitive interactions to enhance user satisfaction and engagement.
  • Security, Performance, and Capacity: Implementing robust security measures to safeguard user data and transactions, optimising system performance, and ensuring adequate capacity to meet user demands.

You May Also Like…

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *