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!
-
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.
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.
- Python 3.9 or higher
- Node.js and npm
- PostgreSQL (highly recommended)
- A virtual environment (recommended)
-
Clone the repository:
git clone https://github.com/bilalobe/PFA.git cd PFA
-
Create and activate a virtual environment:
- Windows:
python -m venv env env\Scripts\activate
- Linux/macOS:
python3 -m venv env source env/bin/activate
- Windows:
-
Install dependencies:
pip install -r requirements.txt cd frontend npm install cd ..
-
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', } }
- Create a PostgreSQL database (e.g., use the
-
Apply migrations:
python manage.py makemigrations python manage.py migrate
-
Create a superuser account:
python manage.py createsuperuser
-
Start the development servers:
- Backend:
python manage.py runserver
- Frontend:
Open a new terminal window and run:cd frontend npm start
- Backend:
-
Access your platform:
Open your web browser and visit http://localhost:8000/.
-
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.
- Features:
-
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
.
- Features:
-
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.
- Features:
-
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.
- Features:
-
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.
-
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.
- Features:
-
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.
- Features:
-
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.
- Features:
-
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.
- Features:
-
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.
- 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.
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!
This project is licensed under the MIT License.
Made with β€οΈ