zeba_academy_learning_api_models

A production-ready Flutter package containing reusable API models for learning platforms.

zeba_academy_learning_api_models provides clean, scalable, and null-safe data models for:

  • Courses
  • Students
  • Quizzes
  • Learning progress
  • Certificates

Designed for Flutter applications, education platforms, LMS systems, and API-driven learning apps.


✨ Features

✅ Course Models ✅ Student Models ✅ Quiz Models ✅ Progress Tracking Models ✅ Certificate Models ✅ JSON Serialization / Deserialization ✅ Null Safety Support ✅ Equatable Model Comparison ✅ Clean Architecture Friendly ✅ API Integration Ready ✅ Lightweight Dependency Usage


📦 Installation

Add this package to your pubspec.yaml:

dependencies:
  zeba_academy_learning_api_models: ^1.0.0

Then run:

flutter pub get

🚀 Usage

Import the package:

import 'package:zeba_academy_learning_api_models/zeba_academy_learning_api_models.dart';

📚 Course Model

Create a course:

final course = CourseModel(

id: "course_001",

title: "Flutter Development",

description:
"Learn Flutter from beginner to advanced",

instructor:
"Zeba Academy",

lessons: 50,

rating: 4.8,

);

Convert from JSON:

final course =
CourseModel.fromJson(jsonData);

Convert to JSON:

final data =
course.toJson();

👨‍🎓 Student Model

final student = StudentModel(

id: "student_001",

name: "Alex",

email: "alex@example.com",

avatar:
"https://example.com/avatar.png",

);

📝 Quiz Model

Create quiz questions:

final question = QuizQuestion(

question:
"What is Flutter?",

options:
[
"Dart Framework",
"Database",
"Server"
],

answer:
"Dart Framework"

);

Create quiz:

final quiz = QuizModel(

id:"quiz_001",

title:"Flutter Basics",

questions:
[
question
],

);

📈 Progress Model

Track learning progress:

final progress = ProgressModel(

studentId:
"student_001",

courseId:
"course_001",

percentage:
75.5,

completed:
false,

);

🏆 Certificate Model

final certificate =
CertificateModel(

id:"cert_001",

studentId:
"student_001",

courseId:
"course_001",

certificateUrl:
"https://example.com/certificate",

issuedDate:
DateTime.now(),

);

🔄 API Example

Example API response:

{
 "id":"course_001",
 "title":"Flutter Development",
 "description":"Learn Flutter",
 "instructor":"Zeba Academy",
 "lessons":50,
 "rating":4.8
}

Convert:

CourseModel course =
CourseModel.fromJson(response);

🗂️ Folder Structure

lib/

├── models/

│   ├── course_model.dart

│   ├── student_model.dart

│   ├── quiz_model.dart

│   ├── progress_model.dart

│   └── certificate_model.dart


└── zeba_academy_learning_api_models.dart

🛠️ Requirements

Flutter:

>=3.0.0

Dart:

>=3.0.0

🤝 Contributing

Contributions are welcome!

Steps:

  1. Fork the repository

  2. Create a feature branch

git checkout -b feature/new-feature
  1. Commit changes
git commit -m "Add new feature"
  1. Push branch
git push origin feature/new-feature
  1. Open a Pull Request

📄 License

This project is licensed under the GNU General Public License v3.0.

You are free to:

  • Use
  • Modify
  • Share
  • Improve

under the terms of GPL-3.0.

See the full license:

LICENSE

👨‍💻 About Me

✨ I’m Sufyan bin Uzayr, an open-source developer passionate about building and sharing meaningful projects.

Learn more:

🌐 Website: https://sufyanism.com/

LinkedIn:

https://www.linkedin.com/in/sufyanism


🚀 Your all-in-one learning hub!

Explore courses and resources in coding, tech, and development.

Zeba Academy is a learning platform dedicated to coding, technology, and development.

Visit:

🌐 https://zeba.academy

Hands-on learning:

🌐 https://code.zeba.academy

YouTube:

https://www.youtube.com/@zeba.academy

Instagram:

https://www.instagram.com/zeba.academy/


⭐ Support

If this package helps your project, consider giving it a star ⭐

Thank you for using:

zeba_academy_learning_api_models