Compare commits

..

4 commits

17 changed files with 87 additions and 99 deletions

2
.fvmrc
View file

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

View file

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

21
LICENSE Normal file
View file

@ -0,0 +1,21 @@
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,51 +1,15 @@
# Pharmacy Mobile App
![Logo](assets/icon/icon.png)
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)
# OFA Mobile App
## 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.
## 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.
- **Stock Monitoring**
- **Consultation**
- **Symptoms Identification**
- **Cart Identification**
- **Profile Management**
## 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();
late bool _isLoading = false;
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>();
late bool _isLoading = false;
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();
late bool _isLoading = false;
bool _isLoading = false;
Future<void> _getManufacturerListCache() async {
final manufacturerList = await _refManufacturers.getList();

View file

@ -55,23 +55,24 @@ class _AddMedicinePageState extends State<AddMedicinePage> {
final _nameController = TextEditingController();
final _barcodeController = TextEditingController();
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 = '';
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;
Future<void> _getGenerics() async {
_genericNameList = await _refGenericNames.getList();

View file

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

View file

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

View file

@ -29,12 +29,13 @@ class _DeleteStockPageState extends State<DeleteStockPage> {
final _stocks = Stocks();
final _quantityController = TextEditingController();
late List _stockList = [];
late String _selectedStock = '';
late bool _aboveQuantity = false;
late bool _noStock = false;
late double _serverQuantity = 0;
late String _selectedUUID = '';
bool _aboveQuantity = false;
bool _noStock = false;
double _serverQuantity = 0;
late List _stockList;
late String _selectedStock;
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();
late bool _isLoading = false;
late double containerHeight = 0.35;
bool _isLoading = false;
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();
late bool _isLoading = false;
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();
late bool _isLoading = false;
late double containerHeight = 0.44;
bool _isLoading = false;
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: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0"
sha256: "8dcda04c3fc16c14f48a7bb586d4be1f0d1572731b6d81d51772ef47c02081e0"
url: "https://pub.dev"
source: hosted
version: "10.0.9"
version: "11.0.1"
leak_tracker_flutter_testing:
dependency: transitive
description:
name: leak_tracker_flutter_testing
sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573
sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1"
url: "https://pub.dev"
source: hosted
version: "3.0.9"
version: "3.0.10"
leak_tracker_testing:
dependency: transitive
description:
name: leak_tracker_testing
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1"
url: "https://pub.dev"
source: hosted
version: "3.0.1"
version: "3.0.2"
lints:
dependency: transitive
description:
@ -993,10 +993,10 @@ packages:
dependency: transitive
description:
name: test_api
sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd
sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00"
url: "https://pub.dev"
source: hosted
version: "0.7.4"
version: "0.7.6"
typed_data:
dependency: transitive
description:
@ -1105,10 +1105,10 @@ packages:
dependency: transitive
description:
name: vector_math
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b
url: "https://pub.dev"
source: hosted
version: "2.1.4"
version: "2.2.0"
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.0.0+1
version: 1.8.27
environment:
sdk: ^3.6.1