Skip to content

Watson is a collaborative web media fact checker. The API is RESTFUL and developped following CQRS and EventSourcing programming patterns.

License

Notifications You must be signed in to change notification settings

pierregillon/Watson.Api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build status

What is Watson ?

Watson is a collaborative web fact checker. We all are tired to see false assumptions, fake news and data manipulation when browsing the Internet. The idea behind Watson is to create a community of anonymous inspectors, simple citizens like you and me, who chases and reports suspicious facts. Cooperation through collective intelligence let us distinct true facts and bad information.

This is an API. Do you have client side apps ?

For now, the client applications are browser extensions :

  • For Chrome
  • For Firefox (Coming soon)
  • For IE (Coming soon)

Features

No production version yet. Wait for v1.0.

Implemented (v0.1)

  • Report a suspicious fact
  • List facts of a web page
  • Jwt token authentication

In progress

As a member of the Watson fact checker community, I must be able to

  • List facts when same page but slightly different url (some parameters may differ)
  • Mark a fact as interesting and further investigation needed
  • Mark a fact as "not a fact" and must be removed
  • Link 2 facts
  • Qualify a fact relation (confirm => infirm)
  • List all related fact of a fact
  • Qualify document (scientific, politic, non professional blog) to estimate quality and pertinence
  • Hide unimportant words in a fact, replaced by [...]

Technical

  • Infrastructure requirements to automatically deploy from CI
  • RabbitMQ for event publishing

Development

Let's talk here about technical details. You might be interested of this section if you want to run the code on your machine.

How the API is built ?

The api is built using .NET Core and following architecture patterns :

Main libraries

Installing & Executing

  1. Make sure .NET Core SDK is installed on your environment (dotnet command line tool)

  2. Install dependencies

dotnet restore
  1. Build
dotnet build
  1. Run
dotnet run --project Watson/watson.csproj
  1. Publish and run Alternatively, you can publish the project and execute it.
dotnet publish Watson/Watson.csproj
cd Watson/bin/[Debug, Release]/netcoreapp2.2/publish
dotnet exec Watson.dll

Running the tests

dotnet test

The tests run with xUnit.

Versioning

The project use SemVer for versioning. For the versions available, see the tags on this repository.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Domain event brain storming

Domain events brain storming :

  • ReportSuspiciousFact
    • FactId
    • Wording
    • Location
      • WebPageUrl
      • Xpath
    • UserId
  • RelatedFactAdded
    • FactId
    • RelatedFactId
    • UserId
  • FactRelationQualified
    • FactId
    • RelatedFactId
    • UserId
    • Fact qualification
      • Confirm completely
      • Confirm partially
      • Infirm partially
      • Infirm completely
      • Not a fact
  • FactUpVoted
    • FactId
    • UserId
  • FactDownVoted
    • FactId
    • UserId

About

Watson is a collaborative web media fact checker. The API is RESTFUL and developped following CQRS and EventSourcing programming patterns.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages