Skip to content

DevyusCode/Synethia

Repository files navigation

GitHub contributors GitHub issues GitHub GitHub Workflow Status Using PeyrSharp GitHub release (latest SemVer)



Logo

Synethia

A basic C# algorithm that can determine the behavior of a user with an application.
Report Bug · Request Feature · Known Issues

Features

  • Detects how long the user is using which part of an app. (like a page)
  • Detects how many interactions the user has with an app. (like clicking on a button)
  • Calculates and associates a score to each page/part of the app depending on the two factors above.

More features are coming soon.

Score

Synethia attributes a score to each page/part of the app depending on the following two factors:

  • The time the user is using the page.
  • The number of interactions the user has with the page.

The score is calculated using the following formula:

$$ score = totalTime * ({interactions \over 2}) $$

Note This formula can change/evolve in upcoming releases.

Graph

graph TD
    App-->MainWindow-->Page-->C
    Page-->A
    Page-->F
    A{When a page is viewed}-->B[Get the current Unix time]
    B 
    C{Page left}-->D[Calculate total time elapsed]
    D-->E[Add this value to the page interest score]
    C-->B

    F{When an interaction occurs}-->E

    E-->G[Compare this score with the score of other pages]
    H[The page with the highest score can be suggested to the user]
    I[The page with the lowest score can be suggested to a 'Discover' section]

    G-->H
    G-->I

    MainWindow-->p1(Page 1 interest score)
    MainWindow-->p2(Page 2 interest score)
    MainWindow-->p3(Page 3 interest score)
    p1-->G
    p2-->G
    p3-->G
Loading

Contribute

To contribute to the project, you'll need:

  • Visual Studio 2022 v17.0 or higher
    • .NET Desktop Development
    • Git
  • .NET 6

Click here to see the full guidelines.

License

This project is under the MIT License.