Skip to main content

Logo

NOW - Learning Management System

PyPI - License PyPI PyPI - Wheel Docker Repository on Quay CI codecov Quality Gate Status Code style: black Code style: Prettier Ruff Join the chat at https://gitter.im/now-lms/community

A simple-to-{install, use, configure, monetize, and maintain} learning management system.

Default NOW LMS view


BMO theme NOW LMS landing page Excel theme Sunshine theme Custom theme

NOW-LMS is a modern, lightweight Learning Management System built with Flask and Bootstrap, designed to be simple to deploy, configure, and use. It empowers institutions, instructors, and learners by combining essential e-learning features—course management, enrollment, communication, assessments, and certification—into one accessible platform.

With flexible configuration options, role-based access control, support for multiple databases, and built-in monetization tools, NOW-LMS addresses both pedagogical and andragogical needs in today’s learning environment.

Version 1.0.0 marks the first stable release of NOW LMS. This release has been validated through comprehensive testing with 880+ automated tests, manual testing of all major features, and multi-database backend validation. The system is ready for production use.

Documentation

Live demo: https://now-lms-demo.onrender.com/

User: lms-admin
Password: lms-admin

The demo data is reset on every deployment. Please allow time for the free Render instance to wake up.

Getting Started

Thanks for your interest in the NOW-LMS project!

Implemented Software Stack

  • Backend: Python with Flask microframework
  • Frontend: Bootstrap 5 with Alpine.js
  • ORM: SQLAlchemy

Dependencies

  • Requires Python >= 3.11

Quick Start

To start a local server, simply execute:

# Python >= 3.11
python3 -m venv venv
venv/bin/pip install now_lms
venv/bin/lmsctl database init
venv/bin/lmsctl serve

Then visit http://127.0.0.1:8080/ in your browser. The default admin credentials are:

User: lms-admin
Password: lms-admin

For production deployments, see the user manual.

Never use the default admin user and password in an Internet-accessible environment. It is recommended not to use easily guessable administrator usernames such as admin, root, or administrator. Choosing a custom admin username makes it significantly harder for attackers to access your platform.

Features

NOW - LMS is designed to be simple yet powerful. Here are its key features:

  • Clean codebase: Python and HTML5.
  • Compatible with multiple databases: SQLite, PostgreSQL, and MySQL.
  • Complete course creation functionality, allowing full curriculum setup.
  • Courses are organized into sections, which group resources in a logical manner.
  • Flexible resource types within a course section:
    • YouTube videos
    • PDFs
    • Images
    • Audio files
    • Rich text content
    • External HTML pages
    • Slide presentations
    • External resource links
  • Course types:
    • Free or paid
    • Self-paced, synchronous (with tutor), or time-limited
  • Paid courses support an audit mode, allowing limited access without evaluations or a certificate.
  • Certificate generation upon course completion, exportable as PDF.
    • Includes QR code validation for authenticity.
  • Role-based access control:
    • Admin
    • Instructor
    • Moderator
    • Student
  • Internal messaging system for students to contact instructors and course moderators.
  • Discussion forums integrated per course.
  • Announcement system for course-wide notifications.
  • Assessment tools for quizzes and evaluations.
  • Basic blog functionality for content publishing.
  • Courses can be grouped into programs.
  • Payment integration via PayPal.
  • Monetization of free courses through Google AdSense.
  • Theming and customization:
    • Easily switch themes
    • Fully override the home page if needed

Known Issues

  • The session is not shared in multithreaded WSGI servers. Work is in progress to address this issue. Meanwhile, using Waitress is recommended.

Licence

SPDX-License-Identifier: Apache-2.0
Copyright 2025 - 2026 BMO Soluciones, S.A.

Apache License 2.0 - a permissive open-source license that allows free use, modification, and distribution (including for commercial purposes), as long as copyright and license notices are preserved. It also includes a patent grant to protect users from patent claims but terminates rights if you file such claims. You may combine Apache-licensed code with proprietary software, but you cannot use Apache trademarks or logos without permission, and you must provide proper attribution to the original authors.

Contributing

Thanks for your interest in contributing to the NOW-LMS project. Please note that this is an open-source project, so your contribution will be available to others for free under the terms of the Apache License. Please refer to the CONTRIBUTING file to get started.

Logo

The NOW - LMS logo was developed by Muhammad Nabeel A..


Made with ❤️ and gallo pinto in Nicaragua 🇳🇮

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

now_lms-2.0.3.tar.gz (17.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

now_lms-2.0.3-py3-none-any.whl (19.2 MB view details)

Uploaded Python 3

File details

Details for the file now_lms-2.0.3.tar.gz.

File metadata

  • Download URL: now_lms-2.0.3.tar.gz
  • Upload date:
  • Size: 17.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for now_lms-2.0.3.tar.gz
Algorithm Hash digest
SHA256 ac74ce2e64e8872610185d670fa8d46e647b5a3575a52a5e5384f219fe406bff
MD5 f9dd5881f1f977f77145ae98cefb8780
BLAKE2b-256 7bd68eea70ca9dd64115148dc1afadaea19098b5f867520ce57e2e0e08d93a74

See more details on using hashes here.

Provenance

The following attestation bundles were made for now_lms-2.0.3.tar.gz:

Publisher: pypi.yml on bmosoluciones/now-lms

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file now_lms-2.0.3-py3-none-any.whl.

File metadata

  • Download URL: now_lms-2.0.3-py3-none-any.whl
  • Upload date:
  • Size: 19.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for now_lms-2.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c868f9cda41decc18cf26e2998601bba33472e8303a1f73898fa727c33e601c7
MD5 801a01a2cdf7833b7915c52a249e4743
BLAKE2b-256 d2e40304c002cb18747f4e94556c5a752754e27a13f656349246c09afeaa8843

See more details on using hashes here.

Provenance

The following attestation bundles were made for now_lms-2.0.3-py3-none-any.whl:

Publisher: pypi.yml on bmosoluciones/now-lms

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

2.0.4

2 files

This release

2.0.3 This release

2 files

2.0.2

2 files

2.0.1

2 files

2.0.0

2 files

1.3.3

2 files

1.3.2

2 files

1.3.0

2 files

1.2.7

2 files

1.2.6

2 files

1.2.5

2 files

1.2.4

2 files

1.2.3

2 files

1.2.2

2 files

1.2.1

2 files

1.2.0

2 files

1.1.8

2 files

1.1.7.post1

2 files

1.1.7

2 files

1.1.6

2 files

1.1.5

2 files

1.1.4

2 files

1.1.3

2 files

1.1.2

2 files

1.1.1

2 files

1.1.0

2 files

1.0.5

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page