APPrende+ is an educational platform that provides users with access to free courses, books, and news. The project includes a mobile application developed with Flutter and a web administration page for managing course announcements.
- User authentication with Firebase
- Management of course announcements and courses
- Intuitive and modern user interface
- Integration with external APIs for content
- Web page for course announcement administration (add, edit, delete) for administrators
| Homepage | Books Page | Courses Page |
|---|---|---|
![]() |
![]() |
![]() |
| User Page | Add Announcement Website |
|---|---|
![]() |
![]() |
- Flutter SDK: Install Flutter
- Firebase account: Create Firebase Project
git clone https://github.com/Gatorrante/Apprende-Free-Books-and-Courses-app.git
cd Apprende-Free-Books-and-Courses-appThe project uses Firebase for user authentication and Firestore for database management. Follow these steps to set up Firebase correctly:
-
Install Required Tools
- Install the Flutter SDK: Install Flutter
- Install the Firebase CLI: Install Firebase CLI
- Install the FlutterFire CLI:
dart pub global activate flutterfire_cli
-
Create a Firebase Project
- Go to the Firebase Console and create a new project.
-
Configure Firebase for Your Flutter App
- From the root directory of your Flutter project, run:
flutterfire configure
- This command will guide you through the process of setting up Firebase for your Flutter app, including registering your app with Firebase and generating the
firebase_options.dartfile.
- From the root directory of your Flutter project, run:
-
Initialize Firebase in Your Flutter App
- Open the main.dart file and import the necessary Firebase packages:
import 'package:firebase_core/firebase_core.dart'; import 'firebase_options.dart';
- Initialize Firebase in the
mainfunction:void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, ); runApp(const MyApp()); }
- Open the main.dart file and import the necessary Firebase packages:
-
Add Firebase Plugins
- Add the required Firebase plugins to your Flutter project. For example, to add Firebase Authentication and Firestore:
flutter pub add firebase_auth flutter pub add cloud_firestore
- Ensure your Firebase configuration is up to date:
flutterfire configure
- Add the required Firebase plugins to your Flutter project. For example, to add Firebase Authentication and Firestore:
-
Rebuild Your Flutter App
- Rebuild your Flutter app to apply the changes:
flutter run
- Rebuild your Flutter app to apply the changes:
-
Optional: Use Firebase Emulator for Testing
- If you prefer to use a demo project for testing, initialize Firebase with a demo project ID:
await Firebase.initializeApp( demoProjectId: "demo-project-id", );
- If you prefer to use a demo project for testing, initialize Firebase with a demo project ID:
flutter pub get
flutter run- Navigate to the
webdirectory. - Open
index.htmlin a web browser.
APPS_BOOKS_2024/
├── .dart_tool/
├── .flutter-plugins
├── .flutter-plugins-dependencies
├── .gitattributes
├── .gitignore
├── .metadata
├── .vscode/
│ └── settings.json
├── analysis_options.yaml
├── android/
│ ├── app/
│ └── build.gradle
├── assets/
│ └── screenshots/
│ ├── Add_news_page.png
│ ├── Books_page.png
│ ├── Courses_page.png
│ ├── Homepage.png
│ └── User_page.png
├── build/
├── firebase.json
├── ios/
│ └── Runner/
│ └── Info.plist
├── lib/
│ ├── main.dart # Main entry point of the Flutter app
│ ├── model/
│ │ └── course.dart # Course model
│ ├── services/
│ │ ├── annas_archive_api.dart # API service for books
│ │ └── course_service.dart # API service for courses
│ ├── src/
│ │ └── pages/
│ │ ├── HomePage/
│ │ │ ├── HomePage.dart # Main HomePage with tabs
│ │ │ ├── Login.dart # Login page
│ │ │ └── widgets/
│ │ │ ├── CustomAppBar.dart
│ │ │ ├── UserPageConfig/
│ │ │ │ ├── ProfileCard.dart
│ │ │ │ ├── CategoryButtons.dart
│ │ │ │ ├── SwitchButtons.dart
│ │ │ │ ├── CoursesContainer.dart
│ │ │ │ ├── LibraryContainer.dart
│ │ │ │ ├── add_news.dart
│ │ │ │ ├── admin_settings_page.dart
│ │ │ │ └── user_management.dart
│ │ │ ├── DetalleNoticiaPage.dart
│ │ │ ├── DetalleLibroPage.dart
│ │ │ ├── course_detail_page.dart
│ │ │ ├── tabs/
│ │ │ │ ├── Principal.dart
│ │ │ │ ├── FreeCoursesPage.dart
│ │ │ │ └── libros.dart
│ │ │ └── UserPage.dart # User page with profile and settings
├── linux/
├── macos/
├── pubspec.lock
├── pubspec.yaml
├── README.md
├── test/
├── web/
│ ├── add_news.js # JavaScript for adding news
│ ├── index.html # HTML for the web admin page
│ └── styles.css # CSS for the web admin page
└── windows/
The project integrates with an external API to fetch courses with 100% discount coupons. Special thanks to Huythanh0x for providing the API. Check out the repository here.
Additionally, the project uses Anna's Archive API for retrieving books.
The web administration page allows administrators to manage course announcements. Administrators can add, edit, and delete announcements. The page is built using HTML, CSS, and JavaScript, and it integrates with Firebase for authentication and Firestore for database management.
- 100% coupon course API: Special thanks to Huythanh0x for providing the API. Check out the repository here.
- Anna's Archive API: The project uses Anna's Archive API to retrieve books.
This project is licensed under the MIT License - see the LICENSE file for details.
APPrende+ es una plataforma educativa que brinda a los usuarios acceso a cursos gratuitos, libros y anuncios de cursos nuevos. El proyecto incluye una aplicación móvil desarrollada con Flutter y una página web de administración para gestionar anuncios de cursos.
- Autenticación de usuarios con Firebase
- Gestión de anuncios de cursos y cursos
- Interfaz de usuario intuitiva y moderna
- Integración con APIs externas para contenido
- Página web para la administración de anuncios de cursos (agregar, editar, eliminar) para administradores
| Página Principal | Página de Libros | Página de Cursos |
|---|---|---|
![]() |
![]() |
![]() |
| Página de Usuario | Agregar Anuncio |
|---|---|
![]() |
![]() |
- Flutter SDK: Instalar Flutter
- Cuenta Firebase: Crear Proyecto Firebase
git clone https://github.com/Gatorrante/Apprende-Free-Books-and-Courses-app.git
cd Apprende-Free-Books-and-Courses-appEl proyecto utiliza Firebase para la autenticación de usuarios y Firestore para la gestión de la base de datos. Sigue estos pasos para configurar Firebase correctamente:
-
Instalar Herramientas Requeridas
- Instala el SDK de Flutter: Instalar Flutter
- Instala la CLI de Firebase: Instalar Firebase CLI
- Instala la CLI de FlutterFire:
dart pub global activate flutterfire_cli
-
Crear un Proyecto de Firebase
- Ve a la Consola de Firebase y crea un nuevo proyecto.
-
Configurar Firebase para tu App de Flutter
- Desde el directorio raíz de tu proyecto de Flutter, ejecuta:
flutterfire configure
- Este comando te guiará a través del proceso de configuración de Firebase para tu app de Flutter, incluyendo el registro de tu app con Firebase y la generación del archivo
firebase_options.dart.
- Desde el directorio raíz de tu proyecto de Flutter, ejecuta:
-
Inicializar Firebase en tu App de Flutter
- Abre el archivo y importa los paquetes necesarios de Firebase:
import 'package:firebase_core/firebase_core.dart'; import 'firebase_options.dart';
- Inicializa Firebase en la función
main:void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, ); runApp(const MyApp()); }
- Abre el archivo y importa los paquetes necesarios de Firebase:
-
Agregar Complementos de Firebase
- Agrega los complementos de Firebase requeridos a tu proyecto de Flutter. Por ejemplo, para agregar Firebase Authentication y Firestore:
flutter pub add firebase_auth flutter pub add cloud_firestore
- Asegúrate de que tu configuración de Firebase esté actualizada:
flutterfire configure
- Agrega los complementos de Firebase requeridos a tu proyecto de Flutter. Por ejemplo, para agregar Firebase Authentication y Firestore:
-
Reconstruir tu App de Flutter
- Reconstruye tu app de Flutter para aplicar los cambios:
flutter run
- Reconstruye tu app de Flutter para aplicar los cambios:
-
Opcional: Usar el Emulador de Firebase para Pruebas
- Si prefieres usar un proyecto de demostración para pruebas, inicializa Firebase con un ID de proyecto de demostración:
await Firebase.initializeApp( demoProjectId: "demo-project-id", );
- Si prefieres usar un proyecto de demostración para pruebas, inicializa Firebase con un ID de proyecto de demostración:
flutter pub get
flutter run- Navega al directorio
web. - Abre
index.htmlen un navegador web.
APPS_BOOKS_2024/
├── .dart_tool/
├── .flutter-plugins
├── .flutter-plugins-dependencies
├── .gitattributes
├── .gitignore
├── .metadata
├── .vscode/
│ └── settings.json
├── analysis_options.yaml
├── android/
│ ├── app/
│ └── build.gradle
├── assets/
│ └── screenshots/
│ ├── Add_news_page.png
│ ├── Books_page.png
│ ├── Courses_page.png
│ ├── Homepage.png
│ └── User_page.png
├── build/
├── firebase.json
├── ios/
│ └── Runner/
│ └── Info.plist
├── lib/
│ ├── main.dart # Entrada principal a la aplicación
│ ├── model/
│ │ └── course.dart # Modelo de Cursos
│ ├── services/
│ │ ├── annas_archive_api.dart # Servicio de APIs para libros
│ │ └── course_service.dart # Servicio de APIs para cursos
│ ├── src/
│ │ └── pages/
│ │ ├── HomePage/
│ │ │ ├── HomePage.dart # Menú principal
│ │ │ ├── Login.dart # Página de Login
│ │ │ └── widgets/
│ │ │ ├── CustomAppBar.dart
│ │ │ ├── UserPageConfig/
│ │ │ │ ├── ProfileCard.dart
│ │ │ │ ├── CategoryButtons.dart
│ │ │ │ ├── SwitchButtons.dart
│ │ │ │ ├── CoursesContainer.dart
│ │ │ │ ├── LibraryContainer.dart
│ │ │ │ ├── add_news.dart
│ │ │ │ ├── admin_settings_page.dart
│ │ │ │ └── user_management.dart
│ │ │ ├── DetalleNoticiaPage.dart
│ │ │ ├── DetalleLibroPage.dart
│ │ │ ├── course_detail_page.dart
│ │ │ ├── tabs/
│ │ │ │ ├── Principal.dart
│ │ │ │ ├── FreeCoursesPage.dart
│ │ │ │ └── libros.dart
│ │ │ └── UserPage.dart # Página del usuario y config.
├── linux/
├── macos/
├── pubspec.lock
├── pubspec.yaml
├── README.md
├── test/
├── web/
│ ├── add_news.js # JavaScript para agregar noticias.
│ ├── index.html # HTML para la web del administrador.
│ └── styles.css # CSS para estilos de la web.
└── windows/
El proyecto se integra con una API externa para obtener cursos con cupones de descuento del 100%. Un agradecimiento especial a Huythanh0x por proporcionar la API. Consulta el repositorio aquí.
Además, el proyecto utiliza la API de Anna's Archive para obtener libros.
La página web de administración permite a los administradores gestionar anuncios de cursos. Los administradores pueden agregar, editar y eliminar anuncios. La página está construida utilizando HTML, CSS y JavaScript, y se integra con Firebase para la autenticación y Firestore para la gestión de la base de datos.
- API de cursos con cupón del 100%: Gracias a Huythanh0x por proporcionar la API. revisa su repositorio aquí.
- API de Anna's Archive: El proyecto utiliza la API de Anna's Archive para obtener libros.
Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.




