This is a Presence service, similar to that of google docs, which shows people that are currently viewing a particular doc, history of all the past viewers of a doc. This app has the following basic features:
- A basic user registration and authentication system, with JWT support for API.
- A page that contains the UI element/component (similar to the one shown towards the left in the image above) to show the people who are currently viewing the page. This page can only be accessed by registered users and authorized users.
- UI has the following features:
- You are able to see the registered name, email, avatar, etc on hovering over the avatar of current viewers.
- You are also able to see who all have visited the page in the past and the last timestamp they visited the page.
- You will see an error page when your are authenticated but not authorized to view the doc you are trying to acess.
- Only certain authorized users can view a doc.
- You can share a doc using other user's email id. You can only share a document created by you.
- You can create a doc.
- User : This is used to interact with the users table, and contains logic for fetching relationships like "viewed docs","owned docs".
- Doc : This is used to interact with the docs table, and contains logic for fetching relationships like "viewers","owner".
- DocViewer : This is used to interact with the doc_viewers table, and contains logic for maintaining viewers of a doc. "doc_viewers" is a pivot table to maintain a Many to Many relationship between Doc and User(Viewer).
- DocUser : This is used to interact with the doc_users table, and contains logic for maintaining users with which a Doc is shared with,along with the access role assigned i.e edit or view. "doc_users" is a pivot table to maintain a Many to Many relationship between Doc and User (Shared to).
-
- Database : Amazon RDS instance
- Server : Heroku
-
- Hosted on Github pages
- Implement Caching