Skip to content

anna02272/Libry-Package-Manager-App

Repository files navigation

Libry - Package Manager App

LIBRY - The mobile app that provides users to explore and view the most popular software libraries. Users can browse through a selection of libraries, discover new ones, access detailed information about each, interact with the libraries by adding them to their favorites, viewing their source code repositories, and accessing related resources.

Launch Guide

Prerequisites

  • Flutter
  • Dart
  • Xcode
  • Android Studio
  • You can use Visual Studio Code with the Flutter and Dart plugins.
  • Simulators: both Android and iOS development.

Install the Local Emulator Suite

Before installing the Emulator Suite you will need:

  1. Node.js version 16.0 or higher. Download here
  2. Java JDK version 11 or higher. Download here

To install the Emulator Suite:

  1. Install the Firebase CLI.
  2. You will need CLI version 8.14.0 or higher to use the Emulator Suite. Installation guide

Install and setup Patrol testing framework

  1. To install Patrol testing framework follow installation guide below. Installation guide

Steps to Launch the Application

  1. Clone this repository to your local machine:

    git clone https://github.com/anna02272/Libry-Package-Manager-App.git
  2. Create an API key at libraries.io/api.

  3. Add the API key to a .env file in the root directory of the project:

    API_KEY=YOUR_API_KEY_HERE
    
  4. Run the following command to fetch the project dependencies:

    flutter pub get
  5. If you're using emulators for testing in debug mode, before running the project:

    • uncomment the following lines in main.dart:
      // import 'package:cloud_firestore/cloud_firestore.dart';
    
      if (kDebugMode) {
        // await FirebaseAuth.instance.useAuthEmulator('localhost', 9099);
        // FirebaseFirestore.instance.useFirestoreEmulator('localhost', 8080);
      }
    • start emulators with the following command:
    firebase emulators:start
  6. Build and run the Flutter project on your device or emulator:

    flutter run

Steps to Launch Patrol tests

  1. Repeat steps five and six from above first

  2. Run following command to start Patrol tests:

    patrol test -t integration_test/example_test.dart

Project Features

Libry app offers the following functionalities:

General Features

  1. Icon and Splash Screen:

    • Customized icon and splash screen for branding and visual identity.
  2. Onboarding Slides:

    • Onboarding slides to introduce users to the app's features and functionality.

User Authentication and Registration

  1. User Registration:

    • User registration process with validation and integration with Firebase Authentication for secure authentication.
  2. Login and Reset Password:

    • User authentication with error handling for wrong credentials, with options for resetting the password via email link.

Library and Platform Management

  1. List of Platforms Screen:

    • Home screen displaying platforms of libraries.
    • Platforms data retrieved from the API, including color, title, project count, and default language.
    • Implementation of retry mechanism to handle network errors gracefully.
  2. List of Libraries Screen:

    • Tabbed interface for displaying latest and popular libraries.
    • Features pagination with tabs not reloading for enhanced user experience.
    • Display of platform color, name, version, and keywords.
    • Implementation of retry mechanism to handle network errors gracefully.
  3. Search Result Screen:

    • Pagination feature for browsing search results efficiently.
    • Implementation of retry mechanism to handle network errors gracefully.
  4. Library Details Screen:

    • Detailed view of individual libraries accessible from various parts of the app, including libraries, search, and favorites screens.
    • Integration of a web view component for displaying library details, with support for retry mechanism in case of network issues.
  5. My Favorites Screen:

    • Ability to add or remove libraries from favorites list.
    • Accessible from libraries, search, and favorites screens.
    • Includes functionality to view details of libraries and handles scenarios of empty list or no internet connection using Cloud Firestore.

Account Management

  1. My Account Screen:
  • User profile screen for managing account settings.
  • Localization support for Serbian and English languages, with the default language determined by the operating system.
  • Dark mode feature offering options for dark, light, or system theme settings.
  • Logout functionality for securely signing out of the app.
  1. Delete Account:
    • Confirmation dialog for deleting the user account, with reauthentication required for additional security.

Images of project (light and dark mode + English and Serbian)

Splash screen:

Onboarding Slides:

Login:

Registration:

Reset Password:

List of Platforms Screen:

List of Libraries Screen:

Search Result Screen:

Library Details Screen and Web View:

My Favorites Screen:

My Account Screen:

Change theme:

Change language:

Delete Account:

About

LIBRY - A package manager application designed to streamline package discovery and management for developers.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors