馃攳
Point of Sale - Angular 9 - Walkthrough - YouTube
Channel: unknown
[0]
Okay guys, welcome to Muhammad Bilal channel
and today I'm going to give the demo of my
[4]
application that is basically point of sale
or you can say shop management system. The
[10]
technologies that I鈥檓 using in this project
are angular 9, the latest version of angular,
[17]
NodeJS as my server side language and MySQL
as my database and for designing I鈥檓 using
[24]
angular material. This project has three roles,
first is admin, second is user and third is
[30]
management. These three roles are not allowed
to visit each other pages because of security
[38]
I implemented in this project for example
If I login with the admin and now admin wants
[44]
to navigate to management home page, it will
revert back it to the admin home page because
[51]
admin is not allowed to visit the management
home page. Okay, one thing I implemented in
[56]
this project is activity log. So, admin modified
user, admin modified user, admin added cost
[65]
center. So all the CRUD operations that will
be performed in your application will be saved
[73]
as an activity log, so you see the history
that who updated which record and at which
[80]
time he updated that record. So it鈥檚 very
easy for me to investigate that which user
[88]
is doing some kind of mistakes. Okay, one
thing is If I navigate to user, than I navigate
[102]
to management user detail and lets edit it
and then copy the URL, open private mode of
[108]
browser and paste that link here, and lets
login first with the demo user, Okay lets
[119]
navigate to the users page and management
user and edit this. So I am logged in from
[128]
two different users from two different locations
and both are going to edit the same user,
[135]
so what will happen now? for example the admin
user edit it first and saved it, now when
[145]
demo user will save this record he will get
an error that data has already been modified
[151]
by another user, please refresh the page first
and he navigate back and then come back to
[157]
this page again now he will be able to the
this user.so in this way I tackle this behavior
[163]
that already edited field can鈥檛 be edited
you first have to refresh the page in order
[169]
to edit that field. Okay let me close this
one, let me see my profile. Okay I have already
[177]
updated this picture. Let me delete this picture
first from my project. Now I want to update
[194]
my profile picture. So first I鈥檒l select
my profile picture and you can easily crop
[200]
profile picture and then upload and now you
can see that picture here. Even you can see
[205]
your picture here or you can see your picture
here also and you can even view this picture.
[211]
Okay that鈥檚 good. One another thing is the
history I am maintaining in this project for
[218]
example I am going to create a new measurement
unit 01 and demo mu. Ok so code already exists
[232]
as measurement unit 01 already exists so let
me create 02 mu and save this one now let鈥檚
[244]
navigate to the 02 and the admin user created
this mu means measurement unit at this time
[251]
and no one modified it yet for example admin
again modified this measurement unit now you
[258]
can see that admin created this and admin
modified this and even you can see this in
[263]
your activity log that admin added measurement
unit 02 admin added measurement unit 02 in
[270]
this way you can even filter it lets write
measurement and these records are related
[277]
to the measurement unit admin modified measurement
unit admin added measurement unit like measurement
[282]
unit will exists in all these records. Okay,
so you can even change your password here
[288]
for example my password was admin now I am
changing it to admin99 repeat password admin999
[298]
as they are not same so it will give error
that password doesn鈥檛 match, okay lets change
[304]
this, now password successfully updated, let
me logout and login again, invalid username
[310]
or password because it has been changed to
admin99 lets login and yes user able to login.
[318]
Okay next thing I implemented in my project
is masking, what鈥檚 masking? Masking is 01
[326]
and 01, who set that 01 to 001 because of
this account masking, I set the triple hash
[337]
on second location and double hash to third
location and if you write 1 here and see it
[343]
automatically converted into 01, now for example
if you change that to #### now let鈥檚 logout
[353]
here and re-login and lets navigate to the
chart of account now you can see that it has
[360]
converted your last to the four hashes mask,
so that鈥檚 basically masking, okay 01 has
[372]
already been created. Let me delete this one,
let me delete this one also cannot update
[379]
or delete the parent row because this account
has already been user somewhere either in
[384]
product or in invoice so we have to delete
those invoice or product first in order to
[389]
delete this one, so let鈥檚 create a new 02
, my second account, and this one is of normal
[397]
type and save it, now you can create 02-001
second branch account , you can鈥檛 save it
[410]
because the higher level account code you
created 02 was of detail type and once you
[417]
set an account to detail you can鈥檛 create
its child accounts also detail, so in order
[423]
to create this you first have to set this
01 to the group, basically the opposite of
[430]
detail is group, now you can easily create
the 02-001, my second account now you can
[440]
create this one. Okay If I create an account,
this one and you cannot save it because this
[458]
account will only be created when you already
have this account and this account will only
[464]
be create when you have already this account
so first you have to create 03 account and
[470]
then you鈥檒l create its child accounts, so
these all are basically the part of point
[478]
of sale application, if you are working on
an application that doesn鈥檛 contain all
[481]
these features all these masking than it means
that鈥檚 not a proper point of sale application.
[489]
A proper point of sale application must have
all these features. Okay one another feature
[493]
in account page for example you edit this,
currently you are in edit mode, now you will
[501]
click on generate next it will create 03 automatically
and will shift to the newly created account
[507]
code, oh why it shifted to 04 because 03 was
already created, same in this way if I click
[515]
on this and I鈥檒l create generate next than
it will create 02-002 and you can see here
[523]
and it has been changed to the new mode basically,
okay, for example let me delete this customer,
[531]
okay you cannot delete this customer because
it has already been used in invoice, receipt
[544]
or product. Let me delete all 
the data. Currently customers and suppliers
[554]
tables are empty, okay now you want to create
a customer. For customer you first has to
[562]
select his account and why I am only seeing
one account here, the second account and we
[569]
have four accounts here because the type of
only this account is customer, these all three
[577]
are normal, now if I set this also to the
customer, now you can see two accounts here,
[586]
and you can set first customer, save. Same
in this way you won鈥檛 be able to see any
[598]
account in supplier because no account has
created of supplier type. Let me edit this
[604]
one and set this to the supplier and now you
will be able to see that account while creating
[612]
new supplier, yes you can see here. Okay first
supplier, save. Now one customer and one supplier
[623]
has been created. Now for example if you want
to create an entry of invoice, what鈥檚 an
[628]
entry? Entry is basically a master detail
concept, one master can have multiple details,
[633]
so here you can add one and here you can add
multiple details that basically your one record,
[640]
so this code will automatically be created
that鈥檚 of 10 digit code and 2020 current
[647]
year has automatically been selected and current
month has automatically been selected, let
[652]
me select the customer, okay now let鈥檚 select
the product, oh we don鈥檛 have any product
[661]
yet created so in order to create an invoice
you should have create its corresponding product
[668]
first, so let me create the product, product
is same like chart of account, as you can
[674]
see masking here. Product, cost center and
chart of account I applied masking on these
[681]
three setups, chart of account, cost center
and product. You can see your masking, you
[688]
can change your masking here. Okay so, let
me create a new product 01 olper, let me set
[698]
its measurement unit to this and inventory
account to this and cost of goods account
[703]
to this and lets save this now you will be
able to see that product in invoice. Yes here鈥榮
[713]
olper, now for example you buy the four packets
of olper, each of rate 100 than your total
[722]
amount will become 400 and you are giving
discount of rupees 10 on each packet of olper
[729]
than the total discount will become 40 and
400-40 will become 360 it means your net amount
[734]
has become 360, lets add this one. Okay first
invoice, let select the customer here save
[742]
this, oh yes you have successfully saved your
invoice. Now let鈥檚 see how it looks like,
[752]
that鈥檚 great. As you have added only one
detail so you are only seeing one transaction
[757]
here that was of four quantity hundred rate
and 10 discount rate now for example you want
[765]
to give more discount, lets edit this one,
click on this, let me give you the discount
[772]
of 20 rupees and it became eighty and 400-80
becomes 320 and lets update this one and save
[777]
this now you can see the total discount amount
has become eighty and you can see eighty here,
[784]
so what鈥檚 the history, admin created this
invoice and admin updated this invoice at
[791]
this time, you can even print it, let鈥檚
see how it looks like in print, oh I am printing
[797]
only the history of invoice okay lets create
a receipt. For receipt, okay let鈥檚 talk
[807]
about the code that invoice created for itself
and that is here 10 digit code so in the receipt
[818]
again it is disable so it means that your
code will automatically be created that is
[824]
of 10 digit, let me write the description,
first receipt, select the customer and overall
[834]
amount was 450 rupees and I give the 50 discount
and total net amount has become 400 lets save
[840]
this and your receipt has been successfully
saved. Now you can see here you have just
[846]
created the receipt but not yet modified this
one, now let me login with demo user in private
[857]
window, demo user and lets go to the receipts
and let me update this receipt, save. Now
[869]
you can see that the demo user has updated
this receipt that the admin user created so
[878]
in this way, as you can see already in activity
log that the demo user, the last CRUD operation
[886]
performed in this application was by demo
user that he modified the receipt this one.
[892]
So in this way, you can add the voucher, payment,
bill, invoice and all these are a part of
[902]
point of sale application. Okay one another
thing, the responsiveness of application,
[909]
let me show you the responsiveness of this
application, have you seen the complete view
[914]
of application has been changed and left it
shift it to, yes here it convert itself into
[921]
the table form basically and here it revert
itself into the card form and you can even
[929]
click on this here and lets navigate back
and you can see here all the users. So you
[936]
can see that I created a separate view for
mobile it means that this application can
[943]
run easily on mobiles also. So this is you
are online, it means you are connected to
[952]
the internet, now let me off the internet
for this browser offline, and here is you
[963]
are offline, let me connect it again and you
are online basically it will just show you
[969]
your network connectivity. Let鈥檚 logout
and login with user and user cannot see all
[980]
the setups like accounts, cost centers, measurement
units, user can鈥檛 see anything. User can
[987]
just see the entries. Now If user wants to
navigate to the users page, that is the functionality
[998]
of auth guard, it won鈥檛 navigate you the
users page because admin can only see the
[1006]
users page or admin only has the access to
that page and even normal user can鈥檛 see
[1013]
the activity log because activity log can
only be seen to the admin so I think I have
[1018]
covered a lot for this application. okay at
the end if you want to see the complete technical
[1027]
view of this application , if you want to
deep dive in this application from technical
[1034]
point of view than I have created another
YouTube video on that and you can find the
[1039]
link of that video in the description and
please like comment and subscribe.
Most Recent Videos:
You can go back to the homepage right here: Homepage





