Ditectrev / Practice-Exams-Platform

Practice Exams (Web) Platform developed by Ditectrev's Community.
https://education.ditectrev.com
MIT License
56 stars 14 forks source link

[Feature] Sign up/Sign in (SSO Authentication) #24

Open danieldanielecki opened 5 months ago

danieldanielecki commented 5 months ago

Users should be able to use the platform for the first 15 minutes without any interruptions, but if they spend more time, they should be required to sign up/sign in.

Given that most of the application is on Azure, it'd be great to have the Authentication integrated with Azure platform.

https://github.com/vesas/authjs-base might be a good starting point.

danieldanielecki commented 5 months ago

Oh, and any SSO would be the most UX-friendly, IMHO.

Open for suggestions though!

danieldanielecki commented 5 months ago

https://supabase.com might be a fantastic solution! I'm a big fan of Firebase, but here's an open source version of it, and is sexy tool to try out being to popular recently.

0xJohnnyboy commented 5 months ago

https://supabase.com might be a fantastic solution! I'm a big fan of Firebase, but here's an open source version of it, and is sexy tool to try out being to popular recently.

Supabase is a great alternative to firebase but it's actually PostgREST (postgres + rest api), it's really different. For another lightweight alternative you can take a look in Pocketbase and even pockethost for free hosting. It may fit your needs better as it allows easy content management.

danieldanielecki commented 5 months ago

https://supabase.com might be a fantastic solution! I'm a big fan of Firebase, but here's an open source version of it, and is sexy tool to try out being to popular recently.

Supabase is a great alternative to firebase but it's actually PostgREST (postgres + rest api), it's really different. For another lightweight alternative you can take a look in Pocketbase and even pockethost for free hosting. It may fit your needs better as it allows easy content management.

thanks for feedback, is it technically challenging to integrate or you're proposing simply something more lightweight?

Also, is it supporting Apple's SSO? Potentially, our iOS app would have the same mechanism as well. Hence, would make sense to have the same database with Apple's SSO for our iOS app users.

PS. Pocketbase has been starred already, and if someone from community will want to try it out - no problem for me.

0xJohnnyboy commented 5 months ago

They are just different tools, both support SSO I think. docs for Pocketbase docs for Supabase

I'm more familiar myself with Supabase, I guess your choice should depend on what you want to achieve with this project.

They both have their pros and cons. Both are lightweight, open-source, easily deployable on managed cloud solutions with a free tier or on-prem... both don't have any vendor lock-in also.

These 2 solutions are pretty much full blown databases. If you're just looking for quick SSO and user management without rolling your own auth, you could take a look at Clerk or Auth0. Both have free tiers up to respectively 10k and 7.5k monthly users.

danieldanielecki commented 5 months ago

Thanks for the feedback.

Whoever will pick up this feature: please drop a comment here what's your preference & most likely it'll be merged. I have no opinion about which solution to choose, especially from those 2 open source: supabase vs pocketbase. If you want to try one of those, just drop a comment & I'll merge it.

danieldanielecki commented 4 months ago

I'm only slightly afraid for picking up Pocketbase before it'll reach v1.0.0 and potential migrations, especially while seeing their docs warning about it, while Firebase is quite mature tool.

Additionally, I'm missing there monitoring & alerting functionalities.

Screenshot 2024-06-21 at 10 57 05
danieldanielecki commented 4 months ago

I'm only slightly afraid for picking up Pocketbase before it'll reach v1.0.0 and potential migrations, especially while seeing their docs warning about it, while Firebase is quite mature tool.

Additionally, I'm missing there monitoring & alerting functionalities.

Screenshot 2024-06-21 at 10 57 05

Keep track what has been selected for Monitoring & Alerting in https://github.com/Ditectrev/CloudMaster-Swift/issues/35, if something vendor-agnostic like Sentry, then Pocketbase might be still an option.

danieldanielecki commented 3 months ago

When user will be signed in then remove ads coming in #38, or limit it.