alaadahmed
Is LiveView suitable for big dashboard with many users?
Hello everybody,
I will start to work on a relatively big project “E-learning platform”, it is some kind of school that provide online school service. The platform consists of many users (Student, Teacher, Visor, Supervisor, Admin, Manager) and many other services included like (Reports, Messages between different users, Complains in the form of tickets to support, staff directory, notifications, notes board and many more). As I said it is big project, I used Phoenix LiveView and I am comfortable using it but I am not sure if it will fit here as I can’t imagine such such work only on websockets between all of these different users and server. Each user has his/her own portal of the dashboard. Is it feasible to use LiveView for such project, or better to use separate frontend (react, nextjs) and link it to phoenix api with graphql? what about Surface?
Marked As Solved
quatermain
When I’m reading this I think go with LiveView. Yes, there is possibility that you can have performance issue with 10k users but I’m pretty sure it can be fixed.If not you, community will help you, if not community, contact me and I will give you hand. I think 7 months is plenty of time with LV but not in case you will do JS Client and API. But it depends on your skills.
So for example project which I mentioned couple of time was:
Users can create account and company, company can have multiple users with multiple roles. There is administration part where can be invited multiple people. Administrators can create competitions(LV) and invite another administrators, other don’t see it. Competition has huge form with questions in multiple format(text, checkboxes, …). Competition can be arrange to companies by some specification or invitation. Users from company with specific roles can fill the form. Mostly it’s long form so multiple people can answering at same time for long time (hours, days). So we use LiveView for collaboration and autosaving. Administration dashboard has some LV too. After they submit their application form it has to be validated by another administrator so there is another set of questions in validation form. These questions are hardcoded with some point calculation etc…this part is very complicated. So there is another LiveView for human validation process. There is also another persona, superadmin which have access to everywhere(almost) to help with issues and questions. Some notifications, validations, user profiles, dashboards, etc… Not big, not small project.
Our resoureces:
- time: 6 weeks from first commit to first registration
- manpower:
- me(5y elixir, 15y web) 2w 120%, 4w 30% of fulltime
- senior dev(2y elixir, 5y web) 6w 100%
- junior dev(2 weeks elixir, 6m web) 6w 100%
We did it pretty well. We delivered it, both developers were working on it for next 1-2 months with some small upgrades and some small fixes. How I mentioned it’s running on Heroku and we event didn’t know when they invited about 100k people to the platform for some competition.
So this example can show you how LiveView is powerful when you use Elixir, Phoenix and LiveView and you don’t have enough resources (manpower, time, hw resources)
Also Liked
chrismccord
absolutely yes
derek-zhou
I cringe every time when a user requests a mobile app. For the 99% of all cases, users don’t really want mobile apps, a web app is good enough. It is the platforms that want the users to use mobile apps, to keep them hooked, or worse, to steal their privacy.
Notifications can be done with plain old emails, or slack/discord webhooks if you really need the realtime delivery (most people don’t)
chrismccord
Just like phoenix channels (or genservers) consume only the memory you carry in your state, same story w/ LiveView. Check the docs for temporary_assigns to only hold onto the LiveView state you want to truly be stateful.








