Skip to content

bilalobe/PFA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

PFA - Your Personalized E-Learning Adventure πŸš€

PFA is an open-source e-learning platform designed to empower learners and educators. Discover a universe of knowledge through personalized learning paths, interactive modules, and engaging AI-powered features. Soon, you'll experience seamless real-time collaboration with Firebase's powerful technology!

Badges πŸ‘‡

Version Repo Size Octocat License: Unlicense Last Commit

✨ Features That Spark Curiosity

  • Tailored Learning: Discover a universe of knowledge with courses tailored to your unique interests and skills.

  • Interactive Modules: Dive deep into captivating content with engaging videos, challenging quizzes, and rich resources.

  • Expertly Crafted Courses: Explore a growing galaxy of courses created by passionate educators, each a journey of discovery.

  • Connect and Collaborate: Spark conversations and share insights with fellow learners in our vibrant forum, a constellation of knowledge-seekers.

  • Track Your Progress: Chart your course through the educational cosmos, monitoring your progress and celebrating milestones along the way.

  • AI-Powered Enhancements: Experience a smarter learning journey guided by the wisdom of the algorithmic stars:

    • Sentiment Analysis: Our AI deciphers the emotions behind forum posts and quizzes, helping to foster positive interactions.
    • Language Detection: Language barriers dissolve as our AI automatically identifies and bridges linguistic differences.
    • Chatbot: Seek guidance from our friendly AI chatbot, a beacon of knowledge available 24/7.
    • Personalized Recommendations: Uncover hidden gems of learning with personalized course suggestions, curated just for you.
    • Translator: Unlock a universe of knowledge with our live translation facility, expanding your horizons beyond language boundaries.

πŸ”₯ Now with Firebase: Elevating the Learning Experience

PFA now harnesses the power of Firebase to deliver an even more seamless, engaging, and scalable learning platform. Here's how Firebase elevates the PFA experience:

Effortless User Management with Firebase Authentication

  • Simplified Login and Registration: Users can effortlessly create accounts and log in using their preferred social media or email credentials.
  • Secure Authentication: Firebase handles the complexities of user authentication, ensuring your platform remains secure.

Real-time Collaboration with Firebase Firestore soon =)

  • Instant Updates: Experience real-time updates in forums, chat, and progress tracking, fostering a dynamic and connected learning environment.
  • Scalable Database: Firebase Firestore effortlessly scales to accommodate your growing community of learners.

Rich Media Storage with Firebase Storage

  • Secure File Uploads: Users can easily share images, videos, and other content, enriching the learning experience.
  • Optimized Storage: Firebase Storage handles file management and delivery, ensuring optimal performance.

Personalized Engagement with Firebase Cloud Messaging

  • Targeted Notifications: Keep learners informed and engaged with personalized push notifications about course updates, announcements, and more.
  • Enhanced Communication: Foster a sense of community and encourage participation through timely and relevant notifications.

Blazing-Fast Deployment with Firebase Hosting

  • Effortless Deployment: Deploy your frontend with a single command, simplifying the deployment process and reducing time to market.
  • Global Content Delivery: Firebase Hosting leverages a global CDN to deliver your platform with lightning speed to learners worldwide.

And More!

Firebase seamlessly integrates with PFA, unlocking a universe of possibilities for future enhancements and features.

πŸš€ Launch Your Learning Journey

Prerequisites

  • Python 3.9 or higher
  • Node.js and npm
  • PostgreSQL (highly recommended)
  • A virtual environment (recommended)

Installation

  1. Clone the repository:

    git clone https://github.com/bilalobe/PFA.git  
    cd PFA
  2. Create and activate a virtual environment:

    • Windows:
      python -m venv env  
      env\Scripts\activate  
    • Linux/macOS:
      python3 -m venv env  
      source env/bin/activate  
  3. Install dependencies:

    pip install -r requirements.txt  
    cd frontend  
    npm install  
    cd ..  
  4. Set up your database:

    • Create a PostgreSQL database (e.g., use the createdb command or a GUI tool like pgAdmin):
      createdb eplatform
    • Update database settings in backend/django/settings.py:
      DATABASES = {
          'default': {
              'ENGINE': 'django.db.backends.postgresql',
              'NAME': 'eplatform',
              'USER': 'your_database_user',
              'PASSWORD': 'your_database_password',
              'HOST': 'localhost',
              'PORT': '5432',
          }
      }
  5. Apply migrations:

    python manage.py makemigrations  
    python manage.py migrate  
  6. Create a superuser account:

    python manage.py createsuperuser  
  7. Start the development servers:

    • Backend:
      python manage.py runserver  
    • Frontend:
      Open a new terminal window and run:
      cd frontend  
      npm start  
  8. Access your platform:
    Open your web browser and visit http://localhost:8000/.

πŸ› οΈ Technologies Powering PFA

Backend:

  • Django: A high-level Python web framework known for its speed, security, and scalability.

    • Features:
      • Object-Relational Mapper (ORM): Easy database interactions.
      • Admin Interface: A powerful command center for data management.
      • Templating Engine: Dynamic HTML rendering made easy.
      • Security: Built-in protection against common vulnerabilities.
      • Channels: Real-time communication using WebSockets.
  • Django REST Framework (DRF): A powerful toolkit for building REST APIs with Django.

    • Features:
      • Serializers: Data conversion between Python and JSON.
      • ViewSets: Simplified API view creation.
      • Authentication & Permissions: Control API access.
      • API Documentation: Generate beautiful and browsable API documentation using drf_spectacular.
  • PostgreSQL: A robust, open-source relational database, the bedrock of your data universe.

    • Features:
      • ACID Compliant: Ensures your data remains valid and consistent, even amidst cosmic storms.
      • Advanced Data Types: Handles JSON, arrays, and more with galactic ease.
      • Scalability & Performance: Effortlessly manage expanding datasets as your learning universe grows.
  • Celery: A distributed task queue, the silent workhorse behind the scenes.

    • Features:
      • Asynchronous Processing: Offloads time-consuming tasks to background workers, keeping your platform responsive and nimble.
      • Scheduling: Use Celery Beat to schedule tasks with the precision of a cosmic clock.
  • Redis: An in-memory data store, like a comet streaking through your system, providing blazing-fast caching and message brokering.

  • Sentry: Your watchful sentinel, a real-time error tracking system that helps you identify and resolve issues before they become black holes.

  • TextBlob: A Python library for natural language processing (NLP), the decoder of human emotions and languages.

Frontend:

  • Next.js: A powerful React framework, the rocket fuel for your dynamic frontend experience.

    • Features:
      • Server-Side Rendering: Improved SEO and performance, bringing your content to the forefront of the digital cosmos.
      • Static Site Generation: Faster load times and better scalability, ensuring your platform can handle a supernova of users.
      • API Routes: Built-in API endpoint handling, the bridge between your frontend and backend galaxies.
      • File-Based Routing: Simple and intuitive routing, as elegant as the orbits of planets.
  • React: A popular JavaScript library, the architect of your user interfaces.

    • Features:
      • Virtual DOM: Efficient updates for stellar performance.
      • JSX: Write HTML-like syntax in JavaScript, blurring the lines between code and design.
      • Component-Based: Build reusable UI elements, like the building blocks of a spacecraft.
  • Material-UI: A sophisticated React UI component library based on Google's Material Design.

    • Features:
      • Ready-to-use and Customizable Components: A vast library of buttons, cards, dialogs, and more, ready to be styled to match your cosmic vision.
      • Accessibility: Components designed with accessibility in mind, ensuring everyone can navigate your learning universe.
  • Tailwind CSS: A utility-first CSS framework, your toolkit for crafting beautiful and responsive designs.

  • Redux Toolkit: A state management library that streamlines Redux development, keeping your data in perfect harmony.

    • Features:
      • createSlice: Simplifies reducer creation, making state management as smooth as a lunar landing.
      • createAsyncThunk: Makes handling asynchronous actions a breeze, like navigating through hyperspace.
  • Axios: A JavaScript library for making HTTP requests, the communicator between your frontend and backend.

  • Socket.IO: A library for real-time, bidirectional communication, the language of your chat feature.

Development Tools:

  • Postman: Your trusty spacecraft for exploring and testing your APIs.
  • VS Code: A popular and versatile code editor, your command center for shaping code.
  • Git: The time machine of development, tracking your project's evolution through every commit.
  • Docker: A containerization platform, ensuring consistency in your deployments across different galaxies.
  • Jest: Your test pilot, ensuring the quality of your code through comprehensive unit tests.
  • DRF Spectacular: A tool for generating exhaustive and stunning API documentation.

🀝 Contribute to the Future of Learning

We welcome contributions from passionate developers, designers, and educators! Join our mission to create a universe of knowledge where everyone can explore, learn, and grow.

Fork the repository, create a branch, make your changes, and submit a pull request. Let's make PFA an even more extraordinary learning experience together!

πŸ“„ License

This project is licensed under the MIT License.

Made with ❀️