<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ramzi Issiakhem</title>
    <description>The latest articles on DEV Community by Ramzi Issiakhem (@inaryo).</description>
    <link>https://dev.to/inaryo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F455844%2Fbfe9e3fb-65d6-420c-b298-dc8e130c8dfa.png</url>
      <title>DEV Community: Ramzi Issiakhem</title>
      <link>https://dev.to/inaryo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/inaryo"/>
    <language>en</language>
    <item>
      <title>Creating an Opensource E-Learning Solution: Structuring the base of the Project's codebase</title>
      <dc:creator>Ramzi Issiakhem</dc:creator>
      <pubDate>Tue, 25 Jun 2024 10:41:14 +0000</pubDate>
      <link>https://dev.to/inaryo/creating-an-opensource-e-learning-solution-structuring-the-base-of-the-projects-codebase-2ao5</link>
      <guid>https://dev.to/inaryo/creating-an-opensource-e-learning-solution-structuring-the-base-of-the-projects-codebase-2ao5</guid>
      <description>&lt;p&gt;Hello Everyone, in this article, we will see how to structure the project codebase, we'll take a look to the licensing, the contributing , the documentation and the code of conduct.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to start ?
&lt;/h2&gt;

&lt;p&gt;As for any project or any decision in your life, you need to be informed and have the information crucial for your progress.&lt;/p&gt;

&lt;p&gt;So I started searching on guides and tutorials, I found must-read and complete guides here : &lt;a href="https://opensource.guide/starting-a-project/"&gt;Opensource Guide&lt;/a&gt; , you really should read it !&lt;/p&gt;

&lt;p&gt;Basically, to start a opensource project, you need some basics :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Define your Opensource License:&lt;/strong&gt; to protect your work and yourself&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Explain your project:&lt;/strong&gt; What is it, why is it important, how it will be, how to use it etc…&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contribution Process:&lt;/strong&gt; Clarify how the community can contribute, providing a process and a guide to do it properly&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code of conduct:&lt;/strong&gt; Explain what are the rules of behaviors of each one related to the project&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  OpenSource License:
&lt;/h2&gt;

&lt;p&gt;Choosing your license is important to protect your project and yourself, as it defines how your project codebase can be used, modified, distributed with all the conditions and limitations, the license is primordial to start on a good base, and we can enumerate two categories:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Permissive Licenses:&lt;/strong&gt; The users are allowed to freely use, modify, integrate, and distribute the software without requiring changes to be open sourced, like :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MIT License&lt;/li&gt;
&lt;li&gt;Apache License 2.0&lt;/li&gt;
&lt;li&gt;BSD 3-Clause License&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Copyleft Licenses:&lt;/strong&gt; Copyleft licenses require modified works that incorporate open source code also be open sourced under the same terms, like :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GNU General Public License (GPL)&lt;/li&gt;
&lt;li&gt;GNU Affero General Public License (AGPL)&lt;/li&gt;
&lt;li&gt;GNU Lesser General Public License (LGPL)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In our case, we'll go on a more flexible license, and we will use MIT LICENSE&lt;/p&gt;

&lt;h2&gt;
  
  
  Explaining your Project:
&lt;/h2&gt;

&lt;p&gt;In this part, we need to explain everything about our Project, we can start by creating a README file in the root of our project, and answer to important questions like :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is the Project&lt;/li&gt;
&lt;li&gt;What are the problems it's solving and its goals&lt;/li&gt;
&lt;li&gt;Why you should use it, how it is useful&lt;/li&gt;
&lt;li&gt;How to start using it&lt;/li&gt;
&lt;li&gt;Where to check more details/ documentation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For our project, we answered to the first ones, as the project is still in developement and the file will be modified as we progress&lt;/p&gt;

&lt;h2&gt;
  
  
  Contribution Process:
&lt;/h2&gt;

&lt;p&gt;Here, you explain how the contribution is done in your project, and answer to the most important questions like :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What are the types of contributions wanted&lt;/li&gt;
&lt;li&gt;How to get in touch with the maintainers&lt;/li&gt;
&lt;li&gt;The roadmap and the vision of your projects oriented towards the contributions&lt;/li&gt;
&lt;li&gt;How to file a bug report&lt;/li&gt;
&lt;li&gt;How to suggest a new feature&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This can be done by creating a CONTRIBUTING File in your root project, in our case it will be really simple at first and will evolve over time&lt;/p&gt;

&lt;h2&gt;
  
  
  Code of conduct:
&lt;/h2&gt;

&lt;p&gt;This establish the ground rules of behavior in you project and to everyone evolved in it, it should define the person responsible for taking the complains in consideration as your code of conduct need to be enforced and applied, it also defines how participants should and should not behave and who it should be applied and how&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Our Project&lt;/strong&gt;&lt;br&gt;
You can check for the README,CONTRIBUTING and CODE_OF_CONDUCT files direcly in our project Github here :&lt;br&gt;
&lt;a href="https://github.com/ramzi-issiakhem/learnfony"&gt;https://github.com/ramzi-issiakhem/learnfony&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you've read this far, I'm sure you're interested in the project. Join our Discord server stay in touch! 😁&lt;br&gt;
&lt;a href="https://discord.gg/eBqTKrYPPm"&gt;https://discord.gg/eBqTKrYPPm&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>symfony</category>
      <category>webdev</category>
      <category>devjournal</category>
    </item>
    <item>
      <title>Let's create an Opensource Headless E-learning using Symfony</title>
      <dc:creator>Ramzi Issiakhem</dc:creator>
      <pubDate>Thu, 30 May 2024 11:20:11 +0000</pubDate>
      <link>https://dev.to/inaryo/les-create-an-opensource-headless-e-learning-using-symfony-2jbf</link>
      <guid>https://dev.to/inaryo/les-create-an-opensource-headless-e-learning-using-symfony-2jbf</guid>
      <description>&lt;p&gt;Hello Everyone, let me just present myself... we have a long way together to build &lt;em&gt;The Headless E-Learning in Symfony&lt;/em&gt; 🔥&lt;/p&gt;

&lt;h2&gt;
  
  
  Who Are you ?
&lt;/h2&gt;

&lt;p&gt;My name is Issiakhem Mohamed Ramzi, 22, a passionate full-stack software engineer, for being passionate i really am, I started computer science at 14 YO with Java and POO, what a mess...&lt;br&gt;
Otherwise, I build websites, Web applications and I'm starting my path on the OpenSource World !! &lt;/p&gt;

&lt;h2&gt;
  
  
  What are you doing here ?
&lt;/h2&gt;

&lt;p&gt;I wanna contribute to the community, especially to the opensource community, improve my skills and of course my network, you know... Hahaha&lt;/p&gt;

&lt;h2&gt;
  
  
  The Devlog Serie
&lt;/h2&gt;

&lt;p&gt;Now let's talk business, during this series of &lt;em&gt;&lt;strong&gt;Devlogs&lt;/strong&gt;&lt;/em&gt;, I will share with you the process of building an opensource &lt;em&gt;project&lt;/em&gt;, it's my first time doing it, I count on your help and contributions 😉&lt;/p&gt;

&lt;p&gt;What you will find here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Project's ambitions evolution&lt;/li&gt;
&lt;li&gt;The Critical thinking behind important decisions&lt;/li&gt;
&lt;li&gt;The Design and conceptual study &lt;/li&gt;
&lt;li&gt;The functionalities implementation&lt;/li&gt;
&lt;li&gt;The Obstacles and how we surpass them &lt;/li&gt;
&lt;li&gt;Some Feedback from the community&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Project Story !
&lt;/h2&gt;

&lt;p&gt;Finally after a lot of blabla, let's start introducing the &lt;em&gt;Project&lt;/em&gt;, &lt;em&gt;SymLearn&lt;/em&gt; ( Still a beta name ), is The Headless Opensource E-Learning using Symfony, I recently has a freelance project for the same kind of application and said to myslef: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Ramzi, is there any opensource project for my need ? &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And after some research, I found that, there is solutions but not using Symfony or that are not how I want, that's too bad 😏&lt;/p&gt;

&lt;h2&gt;
  
  
  The Project's Ambitions
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Sky is your limit &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's some good introduction to talk about the SymLearn ambition and functionalities, we aim to make the most &lt;em&gt;efficient, easy to use and deploy&lt;/em&gt; headless e-learning in Symfony !&lt;br&gt;
In few clicks, you will be able to use a complete solution to manage your backend.&lt;br&gt;
What we want is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Extensibility:&lt;/strong&gt; Capability to add new features easily.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Usability:&lt;/strong&gt; Ease of use and user-friendly interface.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modularity:&lt;/strong&gt; Different components and modules activated on demand.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Documentation:&lt;/strong&gt; Comprehensive and clear documentation for developers and users.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flexibility:&lt;/strong&gt; Easy to customize and enhanced flexibility.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security &amp;amp; Authentication:&lt;/strong&gt; A complete security system tailored to your needs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Continuous Integration/Continuous Deployment (CI/CD):&lt;/strong&gt; Automated processes for code integration and deployment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing:&lt;/strong&gt; Rigorous and automated testing to ensure code quality.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The project functionalities:
&lt;/h2&gt;

&lt;p&gt;In this part, we'll take a look at the core functionalities that will be available on &lt;em&gt;SymLearn&lt;/em&gt; :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;User Management:&lt;/strong&gt; A complete user management system ( authentication, authorization, profile, courses overview, rbac, progress... )&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Course Management:&lt;/strong&gt; Manage the modules,courses,chapters and lessons structure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Workspace and groups:&lt;/strong&gt; Create workspace with predefined groups and assign courses according to the group and the workspace.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Assesment and evaluation:&lt;/strong&gt; Create Quizzes,exams, automatic and manual grading.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Tracking &amp;amp; Reporting:&lt;/strong&gt; Track the completion, attendance and progression for students and courses, create completion certificates&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Gamification:&lt;/strong&gt; Badge and achievements system, score systems with leaderboards.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's Next ?
&lt;/h2&gt;

&lt;p&gt;All of this can not be done as a solo developer, that's when I need your help to make it real ( I was writing "WE" during the post but yeah, I'm still solo 😔 &lt;br&gt;
Feel free to comment or ask any questions you have in mind ! &lt;/p&gt;

&lt;p&gt;If you've read this far, I'm sure you're interested in the project. &lt;a href="https://discord.gg/eBqTKrYPPm"&gt;Join our Discord server&lt;/a&gt; to stay in touch! 😁&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>symfony</category>
      <category>webdev</category>
      <category>devlog</category>
    </item>
  </channel>
</rss>
