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.
For now, the client applications are browser extensions :
- For Chrome
- For Firefox (Coming soon)
- For IE (Coming soon)
No production version yet. Wait for v1.0.
- Report a suspicious fact
- List facts of a web page
- Jwt token authentication
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
Let's talk here about technical details. You might be interested of this section if you want to run the code on your machine.
The api is built using .NET Core and following architecture patterns :
- CQRSLite : light library for DDD and CQRS programming
- Nancy : web hosting
- jose-jwt : jwt token encryption
- ElasticSearch.Net : client to ElasticSearch DB
- EventStore.ClientAPI.NetCore : client to EventStore DB (the stream-oriented database optimised for event sourcing)
-
Make sure .NET Core SDK is installed on your environment (dotnet command line tool)
-
Install dependencies
dotnet restore
- Build
dotnet build
- Run
dotnet run --project Watson/watson.csproj
- 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
dotnet test
The tests run with xUnit.
The project use SemVer for versioning. For the versions available, see the tags on this repository.
This project is licensed under the MIT License - see the LICENSE.md file for details
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