Fable is a Software as a Service (SaaS) Library Management System (LMS) Software.
I worked on Fable as a part of an Internship at Infosys Limited, Mysuru, which I received through a challenging selection process, I have a post about it, here.
Here are the videos of the actual developed applications.
Development Overview
The Fable project is subdivided into two application projects, one is for the users and the other is only for library management (mainly librarians) and administrators. I worked as the backend architect and developer.
User LMS
Layout
LMS_User
├── Assets.xcassets # Assets folder
├── CONTRIBUTING.md # Contributing Guide
├── GoogleService-Info.plist # FireBase Integration
├── LMSUser
│ ├── Info.plist
│ ├── LMSUser.swift
│ ├── Models # Models and Entities
│ ├── Services # Services that interact with APIs
│ └── Views # A lot of SwiftUI Views, basically the UI
├── LMSUser.xcodeproj # XCode specific folder, But I like to tinker in
│ ├── project.pbxproj # The project index file used by the source-kit LSP
│ ├── project.xcworkspace # Workspace settings, specific to user environment and settings
│ │ ├── contents.xcworkspacedata
│ └── xcshareddata
├── 'Preview Content'
│ └── 'Preview Assets.xcassets'
│ └── Contents.json
└── README.md # Readme file
The application follows a simple MVVM architecture to structure the source code.
Admin Librarian LMS
LMS_Admin_Librarian
├── CONTRIBUTING.md
├── GoogleService-Info.plist
├── LMS-Admin-Librarian-Info.plist
├── LMSAdminLibrarian
│ ├── Assets.xcassets
│ ├── Models # Entities and models
│ ├── 'Preview Content'
│ │ └── 'Preview Assets.xcassets'
│ │ └── Contents.json
│ ├── Services # Services that interact with APIs
│ ├── Utilities # Utility classes and functions
│ ├── ViewModels # View Models for SwiftUI views
│ └── Views # SwiftUI views files
├── LMSAdminLibrarian.xcodeproj # XCode specific folder
│ ├── project.pbxproj # Project index required by LSP
│ └── project.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
└── README.md # Readme file
I mainly worked on the majorly on the Administrator’s and Librarian’s application. At the time of starting I knew very little about applications programming, I learned through the process of developing and sharing.
I learned a lot from the project as this was my first project in which I worked with a team of 10 members in an agile-based development process. I also had the responsibility of the Scrum Master for the team.