Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Building a Learning Management System with Strapi CMS #1551

Open
1 task done
0xRTekk opened this issue Sep 3, 2024 · 17 comments
Open
1 task done

Building a Learning Management System with Strapi CMS #1551

0xRTekk opened this issue Sep 3, 2024 · 17 comments
Assignees
Labels
Advanced Expertise In progress Tutorial being created

Comments

@0xRTekk
Copy link

0xRTekk commented Sep 3, 2024

What is your article idea?

The context

This tutorial article guides developers in building a Learning Management System for an online school using Strapi CMS.

In this tutorial, developers will build an application to manage all the training materials like degrees, courses, lessons, quizzes, and exams but also the different classes with their students.
They will be guided in the creation of custom modules and views that meet the specific needs of correcting tests, monitoring learners and also statistics.
To complete this article, we will create different views of the students platform : the e-learning application and the view to take the assessments.

Tech stack

  • Strapi
  • SQLite
  • Strapi Cloud
  • NextJS
  • TailwindCSS/EverUI

In summary

The article will cover LMS key features :

  • Course creation and management
  • User enrollment and tracking
  • Content delivery (text, images, videos, quizzes, etc.)
  • Assessment and evaluation tools (quizzes, exams)
  • Reporting and analytics
  • Centralized platform for learners to access training materials

What are the objectives of your article?

The developers and readers will learn :

  • Install & setup a Strapi project
  • Collections types
  • Content management
  • Custom fields
  • Relations
  • Assets/medias management
  • Deployement to Strapi Cloud
  • Database transfert to Strapi Cloud instance
  • Release Workflow
  • Review Workflow
  • RBAC with multiple Admin users, roles and permissions (Admin, Teaching writers, Assessment Correctors, Reviewers)
  • API keys managements for different frontend applications
    • platform for students to access training materials
    • platform for students to pass the exams
  • Creation of custom plugins
    • Assessments correction
    • Students evaluations
    • Analytics

What is your expertise as a developer or writer?

Intermediate

What type of post is this?

Tutorial

Terms & Conditions

  • I have read the Write for the Community program guidelines.
@0xRTekk
Copy link
Author

0xRTekk commented Sep 3, 2024

Hi @Theodore-Kelechukwu-Onyejiaku !
Here's my suggested tutorial article for building an LMS for an online school👍

@Theodore-Kelechukwu-Onyejiaku
Copy link
Collaborator

Hi @0xRTekk,

Thanks for your time and outline. At the moment, we have plans to write this in-house. Meanwhile, please do well to propose another one. Thank you.

I can't wait to see your contributions.

@0xRTekk
Copy link
Author

0xRTekk commented Sep 4, 2024

Damn, so cool !
As it was the project idea I presented for my technical assessment for the Product Advocate position, feel free to DM me if you want any feedbacks or idea 👍

@Theodore-Kelechukwu-Onyejiaku
Copy link
Collaborator

I have now assigned this to you. You can proceed.

Meanwhile, we could make this a blog series, perhaps 1-3. What do you think?

An example of a completed tutorial blog series is this:
https://strapi.io/blog/build-a-transcription-app-with-strapi-chatgpt-and-whisper-part-3

Please let me know what you think. Thank you. I can't wait to see more of your contributions. 💪

@0xRTekk
Copy link
Author

0xRTekk commented Sep 4, 2024

Yes this is a good idea !
So we can dive into all the differents points 👍

What do you think about :

1. First steps to build an LMS application with Strapi CMS

  1. Installation and setup
    • Explaining the context
    • Install Strapi locally
    • Setup the local instance
  2. Teaching materials management
    • Explaining de database structure (Database modeling)
    • Creating the collection types Degree, Course, Lesson, Quizz, Exams
    • Relation fields explanation
    • Install a plugins to add a RichText Editor as a custom field
    • Create the contents (showcase the media manager)
  3. Users and Students management
    • Explaining the difference between admin users and end users
    • Update the User collection to fit to the LMS needs (renaming, add and remove some fields)
    • Create a Class collection types and the relation with Student

2. Instantly deploy your LMS with Strapi Cloud

  1. Easy deployment with Strapi Cloud
    • Create a Strapi Cloud account and deploy the local instance
    • Navigating the Cloud Admin Panel
    • Transfert the local data to the Cloud instance
  2. Boost your teams efficiency
    • Explaining RBAC and create admin users with different roles and permissions
    • Explanation & creation of release workflows answering the school's needs
    • Explanation and creation of workflows based on the school's structure
  3. Tweaking your LMS
    • Changing the admin URL to fit the school's name
    • API keys managements for different frontend applications
      • pedagogical materials platform for students
      • assessments platform for students

3. High added-value developments for your LMS

  1. Build a custom plugin for the students assessments corrections
  2. Build a custom plugin for the students individual evaluations and feedbacks
  3. Build a custom plugin for some stats
  4. Build a basic frontend for
    • pedagogical materials platform for students
    • assessments platform for students

@0xRTekk
Copy link
Author

0xRTekk commented Sep 4, 2024

I wonder if the third part isn't a bit too heavy...
Do you think I should remove some elements 🤔 @Theodore-Kelechukwu-Onyejiaku ?

@Theodore-Kelechukwu-Onyejiaku
Copy link
Collaborator

Hi @0xRTekk ,

Just checking back. Please would you be willing to use v5? 🙂

@0xRTekk
Copy link
Author

0xRTekk commented Sep 6, 2024

Yes with pleasure !
It'll be a great opportunity to test the version and move it forward 👍

@vcoisne
Copy link
Contributor

vcoisne commented Sep 23, 2024

@0xRTekk did you get a chance to start working on this ? We have a lot of interest in the LMS use case :)

@0xRTekk
Copy link
Author

0xRTekk commented Sep 24, 2024

@vcoisne I've started to work a bit on the LMS application using V5 RC. But before we go any further, we need to plan some time with @Theodore-Kelechukwu-Onyejiaku and @PaulBratslavsky to discuss ideas for the application and validate the plan of the article series.

Now that V5 is out, the team should have more time and I'll be able to switch over to the release and get on with things 👍

@PaulBratslavsky
Copy link
Contributor

@0xRTekk, let me know the best dates and times for you, and we can discuss.

@0xRTekk
Copy link
Author

0xRTekk commented Sep 24, 2024

@PaulBratslavsky here you can check my availabilities. Looking forward to discuss about the application 😀

https://calendly.com/d/cpt5-qc4-nxx/30min

@0xRTekk
Copy link
Author

0xRTekk commented Oct 2, 2024

We've had a chat with Paul and we think it would be a good idea to create a fourth part to this series for integration into a Next.js application with deployment on Vercel.

That way, I can concentrate on creating plugins in part three.

The content will then be well separated.
What do you thin k @Theodore-Kelechukwu-Onyejiaku ?

@Theodore-Kelechukwu-Onyejiaku
Copy link
Collaborator

Please proceed @0xRTekk

Thank you!

@vcoisne
Copy link
Contributor

vcoisne commented Nov 8, 2024

Hey @0xRTekk hope you are doing well. How is the article coming along ?

@0xRTekk
Copy link
Author

0xRTekk commented Nov 9, 2024

I'm doing great thank you @vcoisne 👍
I'm just coming back from a long holiday. I'll be able to get back into it quickly (once I'm no longer jetlagged 😆)

@vcoisne
Copy link
Contributor

vcoisne commented Nov 11, 2024

That's great to hear @0xRTekk excited to see the end result :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Advanced Expertise In progress Tutorial being created
Projects
None yet
Development

No branches or pull requests

5 participants
@vcoisne @PaulBratslavsky @Theodore-Kelechukwu-Onyejiaku @0xRTekk and others