Skip to content
/ PyLMS Public

Lacune Mémorielle Sociale (LMS) for Python | Fixes me never remembering people's name | Both a practical and a learning project for Python coding, software engineering best practices, software and cloud architecting, and technology learning

License

Notifications You must be signed in to change notification settings

lesaint/PyLMS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LMS

LMS is a motive to work on new stuff while providing a mean to cope with my personal difficulty to remember people's names and relationships.

LMS stands for "Lacune Mémorielle Sociale" (French for "Social Memory Gap").

Note

Afaik. I invented the terms for "LMS" and "Lacune Mémorielle Sociale". Maybe the name and/or the problem is real thing, but I didn't search.

The high level idea

When LMS hits me, the typical questions I ask myself look like:

  • "Comment s'appelle le père de Paul?" (What is Paul's father name, already?")
  • "Qui est la femme de Remi?" (Who is Remi's wife?)
  • "Comment s'appellent les femmes de mon cours d'escalade" (What are the names of the women attending climbing class with me?)

These are basically queries on persons ("Paul", "Remi", "Pierre", "me"), relationships ("père de", "femme de", "femmes de"), and tags ("cours d'escalade").

So, let's build-up solutions and create applications, services, etc. around that.

LMS applications

LMS is made of several projects:

PyLMS a CLI and GUI in Python to both create a MVP of LMS and further work with Python python/README.md
AndroLMS an Android App because my phone is always at reach when LMS hits me and to explore both Android development and Kotlin android/README.md

Learning through practice

As a consequence, this project has superb opportunities to learn:

  • I can start with a simple CLI and evolve the project to an auto-scaling SAAS service running in the Cloud, with both a web interface and an Android application.
  • I can start with a plain JSON file as a database and evolve to Graph Database and a search service supporting Natural Language requests with AI.
  • I can work on both the migrations between each of these steps and keeping them operational concurrently (e.g. the CLI can ultimately become a client to the SAAS service API).

Despite the technical potential, I want to balance it with:

  1. functional purpose of the tool as the driver and decision maker of technical changes (i.e. no technical change without user value)
  2. my professional centers of interest and my personal strengths:
    • Deepen my knowledge in Python programming and the Python ecosystem (at some point, I prepared for PCPP1 with this project)
    • Backend development (I can't deepen into Frontend as much #chooseYourBattles)
    • Application and Architecture design
    • Software Development best practices

Below, I keep track of this learning plan and its progress.

Python Programing

Software Engineering best practices

Note

I selected Linear to explore an innovative approach to issue tracking compared to Jira. Unfortunately, it's private. As a workaround, description of Pull Requests reproduces the content of issues.

Software Design

Licence

GNU GENERAL PUBLIC LICENSE (GPL)

About

Lacune Mémorielle Sociale (LMS) for Python | Fixes me never remembering people's name | Both a practical and a learning project for Python coding, software engineering best practices, software and cloud architecting, and technology learning

Resources

License

Stars

Watchers

Forks