Skip to content

christophevg/letmelearn

Repository files navigation

Let me Learn

a simple app to support learning definitions, words,...

Rationale

When my daugther's quizlet was in danger of becoming a paid service, it was once again time to spend a few hours to build a simple app to help her out ;-)

Of course it also included a few personal itches to be scratched:

  • Since the last such app, Heroku was no longer "free" and so I had to look for another free Python app hosting solution. With this app, I'm going to explore Render.
  • Over the years I've been building baseweb, a very rapid prototyping environment. With this app, I'm going to include authorization support using OAuth, with support for Google accounts as an authenticating federated login.
  • After experimenting with PWAs in the last such app, I want to further integrate all that support in a more generic way in baseweb.
  • Once the basic app functionality works, I want to use the app to refactor some parts into reusable, generic framework components, with a focus on even more convention over configuration and genericity over specificity. I want to introduce a generic collection-access API layer and dynamical construction of corresponding Vuex store modules, offering a single pattern to access mongo collections from actual pages by simply calling store actions, with all intermediate code be it generic or dynamiclly constructed. Of course this will then be integrated in baseweb.

So, the setup/architecture of this application will be my (currently) prefered one:

  • a SP(A/)PWA based on Vue(tify)
  • using OAuth/OpenID Connect for authentication by Google
  • using a RESTful service
  • to access documents in MongoDB

Implementation Steps

  • Setup a Hello World-like service on Render
    • Setup a Hello World Flask app Hello World
    • Split service in ui and api Hello World, the sequel
    • Connect api to MongoDB Cloud instance Hello World, the sequel
  • Apply baseweb + sppwa + oauth
    • Apply baseweb Hello baseweb
    • Enable PWA usage

    • Add login + OAuth/OpenIDC
    • Add support for Google Accounts
  • Implement application logic
    • Implement "create a topic"
    • Implement "import topics"
    • Implement "learn a topic"

About

a simple app to support learning definitions, words,...

Topics

Resources

Stars

Watchers

Forks

Contributors