Link to home
Start Free TrialLog in
Avatar of dprasad
dprasad

asked on

User Tracking system in asp.net

Hi Experts,

We have a web application mainly used by Customer Case representatives during the call with customer.  Using this application Rep can search the customer details and make some communication between the users like creating service notes and assigning it to some user groups.  On top of this application we need a user tracking system. Probably we need to capture below information.

Potential data points to capture: (one entry for each page or postback?)
Session ID
Page name
URL (like page name, but includes all query string, etc)
User ID
Postback sender(?), what button/link was clicked
Timestamp
Notes (a free field where perhaps we can customize certain pages to log additional information if desired)
SearchType
SearchText
Server

One obvious concern is the size that this table could grow to if we are logging a row for essentially every user action.  It quite likely would be over a million entries a week (searches alone might be around 70,000 per week, which we already are capturing).  However, we want the data accessible in a way so that we could reconstruct a user’s series of actions if desired, while also being able to query by page name and build a list that way.

Note: we would probably want to write it out using the Message Queue.

Please provide some suggestions and views.

Thanks,
Mateti
Avatar of Shalom Carmel
Shalom Carmel
Flag of Israel image

Purely from an architectural point of view:

The data storage can be a NoSQL database, like DynamoDB or Cassandra.
This has the benefit of easier scalability and better management for very large data sets.

Your idea of using a message queue as a buffer between the event collectors and the data storage is a good one. You could have used any queue implementation , even a log file on a file system, but a message queue scales much better and has additional advantages.
Avatar of dprasad
dprasad

ASKER

I did some R & D and found following options for user tracking
1)      IIS logs
2)      HTTP modules – begin and end request
3)      Sessions
4)      Membership
Each approach have some advantage and disadvantage. My requirement is I should be able to log various information, even custom log should be achievable. I am ok if I get the solution by combining more than one above approaches. Could you please suggest me which one is feasible and extendable?

Thanks in advance,
Mateti
ASKER CERTIFIED SOLUTION
Avatar of Shalom Carmel
Shalom Carmel
Flag of Israel image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of dprasad

ASKER

Can you through some light on your answer please.