- π Sobre
- π± Preview
- π¦ Assets
- π οΈ Features and Technologies Studied
- π€― Challenges and Learning along the way
- π€ How to use
- πͺ How to contribute
- π License
An app for barber shop professionals, where it is possible to manage your own barber shop and even yourself. In addition to having the flow of scheduling appointments and controlling services.
Barbershop.Demo.mp4
![](https://private-user-images.githubusercontent.com/59374587/268137690-536a65a6-bfd4-4901-adac-05cc70f6b690.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUxOTA5OTAsIm5iZiI6MTcyNTE5MDY5MCwicGF0aCI6Ii81OTM3NDU4Ny8yNjgxMzc2OTAtNTM2YTY1YTYtYmZkNC00OTAxLWFkYWMtMDVjYzcwZjZiNjkwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAxVDExMzgxMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJiODBjOTQ0ZDNjMzM5MmU4ZDUxMDUzYjI2ZTQ3ODRkMDY0NWNmY2ZkYTdlYTViZjZmOTdmOWI4NDZhZTBkYjYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Bz6YeTaXa3ESaqgGLbK2Zx8OlLVv_GWNDm8gAC28A0A)
- Using Dart 3 powers:
- Functional Programming (Either) with Pure Dart (using Dart 3 power);
- Using a lot
switch
ways; - Using
pattern matching
etc.
- Postman Collections;
- Themes, help extensions, constants helpers, custom exceptions and more;
- Rest Client with Dio and Interceptors;
- Login, Register and Logout flow;
- Screens
- Splash;
- Register (account, establishment and professional);
- Login;
- Home (customized for each user);
- Schedule;
- Employee flow;
- Calendar flow;
- Packages:
- Dentre outras coisas. π₯
Without a doubt, the biggest learning experience was Riverpod; I realized that it is very interesting for managing the state of an application, going further in points that can be crucial (such as being able to have multiple providers of the same type, performing dispose when it is no longer used, among other things).
Furthermore, it was really cool to learn more about the powers and uses of Dart 3 in practice, such as the new switch
and the use of pattern matching
; which fit very well and make the code more objective. Another point that was very interesting was the Either
used, similar to what is in this article; without any external dependency. You can use functional programming with pattern matching
to handle error and success cases.
Various other learnings were acquired and also reinforced; in addition to refactorings and code improvements made along the way. There is always something to be improved and learned. π
Configure the Flutter environment on your machine:
https://flutter.dev/docs/get-started/install
- Clone the repository:
$ git clone https://github.com/felipecastrosales/barbershop
- Enter the directory:
$ cd barbershop
- Open the project:
$ code .
- Install the json_rest_server:
$ dart pub global activate json_rest_server
- Enter the api directory:
$ cd api
- Run the server:
$ json_rest_server run
- Enter the project directory:
$ flutter pub get
- Get your IP and put on `rest_client.dart`;
- Execute the application:
$ flutter run
There are several ways to contribute to this project, such as:
- Fork this repository;
- Create a branch with your feature:
$ git checkout -b my-feature
- Commit your changes:
$ git commit -m "feature: My new feature"
- Push your branch:
$ git push origin my-feature
- Open a pull request on this repository and/or create an issue explaining your problem.
This repository is under the MIT License, and you can see it in the LICENSE file for more details.
This project was developed with β€οΈ by @Felipe Sales, with the instructor @Rodrigo Rahman. If this helped you, give it a β, and contribute, it will help me too. π