Compare commits

..

No commits in common. "bcb2ac5a7d15714724e801ed7309d183318a8cf7" and "d130aef56c6a153b2f30523f75346cf7c13daad2" have entirely different histories.

17 changed files with 99 additions and 87 deletions

2
.fvmrc
View file

@ -1,5 +1,5 @@
{
"flutter": "3.35.2",
"flutter": "3.32.0",
"runPubGetOnSdkChanges": true,
"updateVscodeSettings": true,
"updateGitIgnore": true

View file

@ -1,3 +1,3 @@
{
"dart.flutterSdkPath": ".fvm/versions/3.35.2"
"dart.flutterSdkPath": ".fvm/versions/3.32.0"
}

21
LICENSE
View file

@ -1,21 +0,0 @@
MIT License
Copyright (c) 2025 Patrick Alvin Alcala
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View file

@ -1,15 +1,51 @@
![Logo](assets/icon/icon.png)
# Pharmacy Mobile App
# OFA Mobile App
The Pharmacy Mobile App is a Flutter application designed to provide a seamless experience for customers interacting with a pharmacy service. This app includes features such as buying medicine, viewing menus, managing cart items, and accessing user profiles.
## Table of Contents
1. [Features](#features)
2. [Prerequisites](#prerequisites)
3. [Getting Started](#getting-started)
4. [Contributing](#contributing)
5. [License](#license)
## Features
- **Login/Logout**: Customers can sign in and out of the app.
- **Menu View**: Access a menu with various medicine options.
- **Cart Management**: Add items to a cart and proceed to checkout.
- **Profile Management**: Update user profiles and manage personal information.
- **Stock Monitoring**
- **Consultation**
- **Symptoms Identification**
- **Cart Identification**
- **Profile Management**
## Prerequisites
Before running the project, ensure you have the following installed:
- [Flutter SDK](https://flutter.dev/docs/get-started/install)
- [Dart SDK](https://dart.dev/get-dart)
## Getting Started
1. Clone this repository to your local machine.
```sh
git clone https://github.com/yourusername/pharmacy_mobile.git
```
2. Navigate to the project directory.
```sh
cd pharmacy_mobile
```
3. Install dependencies.
```sh
flutter pub get
```
4. Run the application on a simulator or device.
```sh
flutter run
```
## Contributing
Contributions are welcome! Please follow these steps:
1. Fork this repository.
2. Create a new branch (`feature/your-feature`).
3. Make your changes and commit them (`git commit -m 'Add some feature'`).
4. Push the branch to your forked repository (`git push origin feature/your-feature`).
5. Open a pull request in the original repository.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

View file

@ -26,7 +26,7 @@ class _AddDistributorPageState extends State<AddDistributorPage> {
final _addressController = TextEditingController();
final _refDistributors = RefDistributors();
bool _isLoading = false;
late bool _isLoading = false;
Future<void> _getDistributorListCache() async {
final distributorList = await _refDistributors.getList();

View file

@ -30,12 +30,12 @@ class _AddGenericsPageState extends State<AddGenericsPage> {
final _nameController = TextEditingController();
final _formKey = GlobalKey<FormState>();
bool _isLoading = false;
late bool _isLoading = false;
// late final List _categoryListCache = [];
late List _categoryList;
late String _selectedCategory;
late String _categoryUUID;
late List _categoryList = [];
late String _selectedCategory = '';
late String _categoryUUID = '';
Future<void> _getGenericListCache() async {
final genericNameList = await _refGenericNames.getList();

View file

@ -26,7 +26,7 @@ class _AddManufacturerPageState extends State<AddManufacturerPage> {
final _addressController = TextEditingController();
final _refManufacturers = RefManufacturers();
bool _isLoading = false;
late bool _isLoading = false;
Future<void> _getManufacturerListCache() async {
final manufacturerList = await _refManufacturers.getList();

View file

@ -55,24 +55,23 @@ class _AddMedicinePageState extends State<AddMedicinePage> {
final _nameController = TextEditingController();
final _barcodeController = TextEditingController();
bool _isLoading = false;
bool imageUploaded = false;
bool uploaded = false;
late List _genericNameList;
late String _selectedGeneric;
late String _selectedCategory;
late List _typeList;
late String _selectedType;
late List _manufacturerList;
late List _distributorList;
late List _supplierList;
late String _selectedManufacturer;
late String _selectedDistributor;
late String _selectedSupplier;
late String uuid;
late String imageUrl;
late String imageUUID;
late bool _isLoading = false;
late List _genericNameList = [];
late String _selectedGeneric = '';
late String _selectedCategory = '';
late List _typeList = [];
late String _selectedType = '';
late List _manufacturerList = [];
late List _distributorList = [];
late List _supplierList = [];
late String _selectedManufacturer = '';
late String _selectedDistributor = '';
late String _selectedSupplier = '';
late String uuid = '';
late bool imageUploaded = false;
late String imageUrl = '';
late bool uploaded = false;
late String imageUUID = '';
Future<void> _getGenerics() async {
_genericNameList = await _refGenericNames.getList();

View file

@ -34,12 +34,11 @@ class _AddStockPageState extends State<AddStockPage> with WidgetsBindingObserver
final _priceController = TextEditingController();
final _stocks = Stocks();
late List _medicineList;
late String _selectedMedicine;
late String barcode;
bool _isLoading = false;
DateTime selectedDate = DateTime.now();
late bool _isLoading = false;
late List _medicineList = [];
late String _selectedMedicine = '';
late DateTime selectedDate = DateTime.now();
late String barcode = '';
final sampleBarcode = '8992185411017';

View file

@ -25,7 +25,7 @@ class _AddSupplierPageState extends State<AddSupplierPage> {
final _nameController = TextEditingController();
final _refSuppliers = RefSuppliers();
bool _isLoading = false;
late bool _isLoading = false;
Future<void> _getSupplierListCache() async {
final supplierList = await _refSuppliers.getList();

View file

@ -29,13 +29,12 @@ class _DeleteStockPageState extends State<DeleteStockPage> {
final _stocks = Stocks();
final _quantityController = TextEditingController();
bool _aboveQuantity = false;
bool _noStock = false;
double _serverQuantity = 0;
late List _stockList;
late String _selectedStock;
late String _selectedUUID;
late List _stockList = [];
late String _selectedStock = '';
late bool _aboveQuantity = false;
late bool _noStock = false;
late double _serverQuantity = 0;
late String _selectedUUID = '';
void _getStocks() async {
_stockList = await _stocks.getList();

View file

@ -18,8 +18,8 @@ class ListStocksPage extends StatefulWidget {
class _ListStocksPageState extends State<ListStocksPage> {
final _stocks = Stocks();
late List _stockList = [];
bool _isLoading = false;
late List _stockList;
List<DataRow> _createRows() {
final today = DateTime.now().toUtc();

View file

@ -26,8 +26,8 @@ class _LoginPageState extends State<LoginPage> {
final _passwordController = TextEditingController();
final FocusNode _focusNode = FocusNode();
bool _isLoading = false;
double containerHeight = 0.35;
late bool _isLoading = false;
late double containerHeight = 0.35;
void _signIn() async {
final email = _emailController.text;

View file

@ -45,7 +45,7 @@ class _MainPageState extends State<MainPage> {
final _refDistributors = RefDistributors();
final _refSuppliers = RefSuppliers();
bool _isLoading = false;
late bool _isLoading = false;
void signOut() async {
try {

View file

@ -25,8 +25,8 @@ class _RegisterPageState extends State<RegisterPage> {
final _confirmPasswordController = TextEditingController();
final FocusNode _focusNode = FocusNode();
bool _isLoading = false;
double containerHeight = 0.44;
late bool _isLoading = false;
late double containerHeight = 0.44;
Future<void> _signUp() async {
final email = _emailController.text;

View file

@ -556,26 +556,26 @@ packages:
dependency: transitive
description:
name: leak_tracker
sha256: "8dcda04c3fc16c14f48a7bb586d4be1f0d1572731b6d81d51772ef47c02081e0"
sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0"
url: "https://pub.dev"
source: hosted
version: "11.0.1"
version: "10.0.9"
leak_tracker_flutter_testing:
dependency: transitive
description:
name: leak_tracker_flutter_testing
sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1"
sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573
url: "https://pub.dev"
source: hosted
version: "3.0.10"
version: "3.0.9"
leak_tracker_testing:
dependency: transitive
description:
name: leak_tracker_testing
sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1"
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
url: "https://pub.dev"
source: hosted
version: "3.0.2"
version: "3.0.1"
lints:
dependency: transitive
description:
@ -993,10 +993,10 @@ packages:
dependency: transitive
description:
name: test_api
sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00"
sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd
url: "https://pub.dev"
source: hosted
version: "0.7.6"
version: "0.7.4"
typed_data:
dependency: transitive
description:
@ -1105,10 +1105,10 @@ packages:
dependency: transitive
description:
name: vector_math
sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
url: "https://pub.dev"
source: hosted
version: "2.2.0"
version: "2.1.4"
vm_service:
dependency: transitive
description:

View file

@ -2,7 +2,7 @@ name: pharmacy_mobile
description: "Ofelia Franco-Alcala Pharmacy App."
publish_to: "none"
version: 1.8.27
version: 1.0.0+1
environment:
sdk: ^3.6.1