Skip to content
Danei1 edited this page May 12, 2025 · 10 revisions

Welcome to the ASE-Project-WeGotThis wiki!

Report of the current state

The current state of the website demonstrates that all essential core features are available and functioning properly. Users can authenticate, browse a homepage with various offers, create new offers, and send requests in response to existing ones. Additionally, they have the ability to complete their profile information, view other users along with their ratings and listings, and communicate through email.

Future development efforts can focus on enhancing user engagement and interaction by implementing the following features:

An in-app messaging system to replace the current email-based chat

User following functionality to build a social layer within the platform

A notification system to keep users informed about activity related to their account and interests

Improving the homepage’s filtering and sorting

Further bugs, design choices and logic need to be reevaluated.

Project organization

For more details, see Project Organization

Documentation

Documentation of the architecture

For more details, seeArchitecture

Usage of technologies and their motivation

For more details, see Technologies

Documentation for the API

Our API documentation is generated using Swagger UI, a widely-used tool for RESTful API visualization and testing. The documentation is based on OpenAPI 3.0 specification, which we maintain in our backend codebase through annotations or YAML/JSON files.

  • During development, we run the backend server locally, and the Swagger UI is served at: http://localhost:8000/api/docs
  • For project delivery, we exported the API documentation in JSON format and converted it into a Markdown document for easier viewing. For more details, see API

How to run it

  • We containerized our code using docker to ensure a seamlessly start Instruction
  1. bash build.sh
  2. docker compose up
  • Enter localhost:5173, and the website should be visible

Testing and Continuous Integration

Testing strategy

We use end-to-end (E2E) tests to verify the overall functionality of our APIs and the integration between microservices.

  • Objective: Ensure that all exposed endpoints behave as expected under success, failure, and edge-case scenarios.
  • Tools:
    • Mocha: Test runner
    • Chai: Assertion library
    • Mochawesome: HTML/JSON report generator

Testing Planning

Test Case Design

  • List all public API routes (GET/POST/PUT/DELETE).
  • For each route, design at least two cases:
    • Normal (successful) flow
    • Missing/invalid parameters or Authentication/authorization failures

Test Reports

See the detailed test report at (http://htmlpreview.github.io/?https://raw.githubusercontent.com/hafizsheetab/ASE-Project-WeGotThis/master/backend/mochawesome-report/mochawesome.html)

Continuous Integration and Deployment

For more details, see Continuous Integration & Deployment