Multiple Dashboards based on Authentication

Hello everyone :slightly_smiling_face:

So I am using Streamlit for the first time in a project, so I am not sure how to approach the following task with this framework. I have red up on the authentication mechanism and I am pretty sure this should be possible. However, any suggestions, best practices and further resources would be great :slight_smile:

This is the project:

  • Multipage Dashboard with Login for multiple Users
  • Basically a financial dashboard for different companies
  • The architecture and visuals of the Dashboard remains the same for all companies
  • Based on the Login from the company the script shall fetch data from the specific company from a DB

If you have also have any suggestions how to best set up a DB with Streamlit (relational, NoSQL, Excel files), let me know. Thank you!

Things to keep in mind when developing a streamlit app.

  1. Main concept - especially the data flow, the prime directive is β€œstreamlit reruns the code from top to bottom whenever there are changes in the object states” such as changing the value of a widget or event such as clicking a button. There is an upcoming streamlit version on the roadmap that will change that prime directive in a good way where developers can control which function to rerun.
  2. Session State - this manages our variables, there is fun in abstraction
  3. Secrets Management - this manages secrets of your app such as api keys, secret tokens, passwords or something that you don’t want the users to know.
  4. Button behavior - be careful on multiple layers of button usage, use the callback as much as possible.
  5. Caching - to improve performance
  6. Connect to data sources - your app is becoming more serious that you are now managing some users’ data or getting big data from other cloud sources
  7. No worries about widgets or controls, they are well documented with examples.
1 Like