Skip to content

Catalog for books built on ASP.NET Core Web API and React

Notifications You must be signed in to change notification settings

georgidimitrovx/BookBazaar

Repository files navigation

BookBazaar - An Online Bookstore

Development

Links

Description

BookBazaar is an online bookstore designed to manage book inventories, user orders, and data analytics.

Technical Specifications

  1. Backend: ASP.NET Core Web API with C#
  2. Database: Azure Cloud SQL Server
  3. APIs: RESTful APIs
  4. Authentication: JWT (JSON Web Tokens) for secure user authentication.
  5. Frontend: React (TypeScript)
  6. Cloud Platform: Azure
  7. DevOps Tools: Git for version control; CI/CD pipeline using Jenkins or Azure DevOps.
  8. Testing: xUnit for unit testing; Postman for API testing; Selenium for UI testing.

Architecture

  1. User: Handles user registration, authentication, and profile management.
  2. Inventory: Manages books' details, stock levels, and categorization.
  3. Order: Processes orders, manages shopping carts, and tracks order status.
  4. Payment: Processes payments and handles payment gateway integrations.
  5. Recommendation: Provides personalized book recommendations to users based on their browsing and purchase history.
  6. Analytics: Gathers and analyzes data for business insights, like popular books, sales trends, etc.

Key Features

User

  • User registration and login functionality.
  • Profile management (update user details, view purchase history).
  • Role-based access control (admin, user).

Inventory

  • CRUD operations for book details (title, author, genre, price, stock quantity).
  • Search functionality (by title, author, genre).
  • Book categorization (e.g., fiction, non-fiction, educational).

Order

  • Shopping cart management.
  • Order placement and confirmation.
  • Order status tracking (placed, shipped, delivered).

Payment

  • Integration with a payment gateway (e.g., Stripe, PayPal).
  • Secure handling of payment transactions.
  • Support for different payment methods (credit/debit card, net banking).

Recommendation

  • Algorithm to suggest books based on user preferences and previous orders.
  • Feature to rate and review books.

Analytics

  • Dashboard for sales data visualization.
  • Reports on top-selling books, customer demographics, and sales trends.
  • Real-time data updates.

Development Approach

  1. Kanban using Trello at https://trello.com/b/1k7otVhD/bookbazaar
  2. TDD (Test-Driven Development): Write tests before coding features.
  3. Code Documentation: Comment code and maintain clear documentation for each model.
  4. Version Control: Use Git with feature branching strategy.

Project Deployment

  • Develop a CI/CD pipeline for automated testing and deployment.

Final Deliverables

  • Source code.
  • API documentation.
  • User manual.
  • Test cases and results.
  • Deployment scripts and instructions.

Testing

  1. Unit Testing:

    • Write unit tests for individual components within each modl.
    • Utilize xUnit.net as your testing framework.
    • Ensure that you cover edge cases, failure modes, and happy paths.
  2. Integration Testing:

    • Test the interactions between models to validate the integrated system behavior.
    • Mock external dependencies or use in-memory databases like SQLite for .NET to simulate real-world scenarios.
    • Tools like Postman or Swagger can be used for testing RESTful APIs.
  3. Functional Testing:

    • Conduct end-to-end testing to validate the application from a user's perspective.
    • Automate user interactions using a tool like Selenium for web applications.
  4. Load Testing:

    • Test how your system behaves under high load conditions.
    • Use tools like JMeter or Apache Bench to simulate multiple users accessing your application concurrently.
    • Focus on identifying bottlenecks, latency issues, and potential crashes.
  5. Security Testing:

    • Validate the security aspects of your application.
    • Ensure that user data is protected, authentication mechanisms are robust, and APIs are secured against common vulnerabilities like SQL injection, XSS, etc.
    • Tools like OWASP ZAP can be used for security testing.
  6. Code Quality Analysis:

    • Use tools like SonarQube to analyze your code for quality issues, code smells, and technical debt.
    • Ensure coding standards are maintained and best practices are followed.
  7. Performance Testing:

    • Monitor and test the performance of your application, focusing on response times, resource usage, and throughput.
    • Use profiling tools to identify performance issues and optimize code where necessary.
  8. User Acceptance Testing (UAT):

    • Engage real users or stakeholders to test the application in a production-like environment.
    • Gather feedback on usability, functionality, and overall user experience.
  9. Continuous Integration and Deployment (CI/CD) Pipeline Validation:

    • Ensure that your CI/CD pipeline correctly builds, tests, and deploys your application.
    • Automate your testing as part of the pipeline to ensure that changes do not break the application.
  10. Monitoring and Logging:

    • Implement monitoring and logging to track the health and performance of your application in real-time.
    • Use tools like ELK Stack or Prometheus and Grafana for logging and monitoring.
  11. Documentation and Code Review:

    • Ensure your code is well-documented and easy to understand.
    • Conduct code reviews with peers or mentors to get feedback and identify potential issues.
  12. Compliance and Best Practices:

    • Ensure your application complies with industry standards and best practices.
    • Stay updated with the latest .NET guidelines and architectural best practices.

About

Catalog for books built on ASP.NET Core Web API and React

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages