zeba_academy_resource_library

Flutter Dart License

A powerful Flutter package for creating a complete learning resource library.

zeba_academy_resource_library helps developers build educational apps with support for PDFs, videos, links, code examples, favorites, and offline access.


โœจ About Me

โœจ Iโ€™m Sufyan bin Uzayr, an open-source developer passionate about building and sharing meaningful projects.

Learn more about my work:

๐ŸŒ https://sufyanism.com/

LinkedIn:

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


๐Ÿš€ Zeba Academy

Your all-in-one learning hub!

Explore courses and resources in:

  • Coding
  • Technology
  • Development
  • Programming

Build practical skills through:

  • Curated tutorials
  • Real-world projects
  • Hands-on learning
  • Developer resources

Main Website:

https://zeba.academy

Coding Resources:

https://code.zeba.academy

YouTube:

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

Instagram:

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


๐Ÿ“ฆ Installation

Add dependency:

dependencies:

  zeba_academy_resource_library:
    git:
      url: https://github.com/your_username/zeba_academy_resource_library.git

Run:

flutter pub get

โœจ Features

๐Ÿ“„ PDF Resources

Display PDF learning materials.

Example:

ResourceModel(

id: "pdf_01",

title: "Flutter Guide",

description: "Flutter learning PDF",

type: ResourceType.pdf,

url: "https://example.com/flutter.pdf",

);

๐ŸŽฌ Video Resources

Support video lessons.

ResourceModel(

id:"video_01",

title:"Flutter Course",

description:"Complete Flutter Course",

type:ResourceType.video,

url:"https://example.com/video.mp4",

);

Open external resources.

ResourceModel(

id:"link_01",

title:"Flutter Docs",

description:"Official documentation",

type:ResourceType.link,

url:"https://flutter.dev",

);

๐Ÿ’ป Code Snippets

Display programming examples.

ResourceModel(

id:"code_01",

title:"Dart Example",

description:"Sample code",

type:ResourceType.code,

url:"void main(){print('Hello');}",

);

โญ Favorites

Save favorite resources locally.

Add:

await FavoriteService()
.add("resource_id");

Get:

final favorites =
await FavoriteService()
.getFavorites();

Remove:

await FavoriteService()
.remove("resource_id");

๐Ÿ“ฅ Offline Access

Download resources for offline usage.

final offline =
OfflineService();


final path =
await offline.downloadFile(

"https://example.com/file.pdf",

"file.pdf"

);

Check file:

await offline.exists(path);

๐Ÿงฑ Resource Types

Available:

enum ResourceType {

pdf,

video,

link,

code,

}

๐ŸŽจ Resource Card

Create reusable resource cards:

ResourceCard(

resource: resource,

onTap:(){

}

);

๐Ÿ“– Resource Viewer

Open resources automatically:

Navigator.push(

context,

MaterialPageRoute(

builder:(_)=>

ResourceView(

resource:resource,

)

)

);

Automatically handles:

โœ… PDF โœ… Video โœ… Link โœ… Code


๐Ÿ—๏ธ Project Structure

lib/

โ”œโ”€โ”€ models/

โ”‚   โ””โ”€โ”€ resource_model.dart


โ”œโ”€โ”€ services/

โ”‚   โ”œโ”€โ”€ favorite_service.dart

โ”‚   โ””โ”€โ”€ offline_service.dart


โ”œโ”€โ”€ widgets/

โ”‚   โ”œโ”€โ”€ resource_card.dart

โ”‚   โ””โ”€โ”€ code_view.dart


โ”œโ”€โ”€ screens/

โ”‚   โ”œโ”€โ”€ resource_view.dart

โ”‚   โ””โ”€โ”€ pdf_view.dart


โ””โ”€โ”€ zeba_academy_resource_library.dart


๐Ÿ”ง Dependencies

This package uses:

  • syncfusion_flutter_pdfviewer
  • video_player
  • url_launcher
  • shared_preferences
  • dio
  • path_provider

๐Ÿงช Testing

Run tests:

flutter test

Analyze:

flutter analyze

๐Ÿค Contributing

Contributions are welcome.

Steps:

git checkout -b feature/new-feature

git commit -m "Add feature"

git push origin feature/new-feature

Create a Pull Request.


๐Ÿ“œ License

Licensed under:

GNU General Public License v3.0

You can:

โœ… Use โœ… Modify โœ… Distribute โœ… Improve

Conditions:

  • Keep source available
  • Keep GPL license
  • Preserve copyright

โค๏ธ Support

If this package helps you:

โญ Star the repository

๐Ÿ› Report issues

๐Ÿ’ก Suggest improvements

Built with โค๏ธ using Flutter.

ยฉ Sufyan bin Uzayr