React Expense Tracker App - Build & Deploy A React Firebase Beginner Project

Ғылым және технология

The first 1000 people to click on the link will get 1 month free trial of Skillshare skl.sh/pedrotech08231
In this video we build an expense tracker app using react and firebase.
Code: github.com/machadop1407/expen...
Join our Discord: / discord
🚀 Learn ReactJS By Building 6 Projects: codedamn.com/learn/reactjs-pr...
🐙 GraphQL Course: codedamn.com/learn/graphql-fo...
Social
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Website: machadopedro.com
Linkedin: / machadop1407
Instagram: / pedro.fmachado_
Github: github.com/machadop1407
Business Email: pedro@pedrotech.co
🌟 Gear / Hardware I Use and Recommend 🌟
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
💻 amzn.to/42kqFuM 💻 Monitor
🖱️amzn.to/3C0ZhHb 🖱️ Mouse
📷 amzn.to/3OHJvbM 📷 My Camera
🎤 amzn.to/3oxSthj 🎤 My Microphone
⌨️ amzn.to/3oFPpj1 ⌨️ My Microphone
⚡ amzn.to/3MYMnzM ⚡ LED Lights In the Background
Tags:
- ReactJS Tutorial
- ReactJS and MySQL
- NodeJS Tutorial
- API Tutorial
EXPENSE TRACKER TIMESTAMPS
00:00 | Intro
01:19 | Project Demo
06:16 | Creating the React App
06:38 | Project Organization
09:47 | Package Installation
10:44 | Initializing Firebase
12:44 | Setting up Firebase Authentication
17:39 | Setting up React Router
21:56 | Creating the Auth Component
32:05 | Expense Tracker Page
38:46 | Setting Up Firestore
17:57 | Adding style to the project
26:00 | Practice Exercise: Adding more functionality
26:27 | Solution to Exercise
38:50 | Routing Authenticated Users
41:39 | Deploying the Application
#reactjs #firebase

Пікірлер: 103

  • @PedroTechnologies
    @PedroTechnologies9 ай бұрын

    The first 1000 people to click on the link will get 1 month free trial of Skillshare skl.sh/pedrotech08231

  • @victoretini2772

    @victoretini2772

    8 ай бұрын

    Please create an app where people can download images. Without API. Like a gallery but where people can view images and download it

  • @pedrotaq
    @pedrotaq9 ай бұрын

    WHAAAT It's already too much that we share the same name, and that we look somewhat alike, but the fact that you posted an entire tutorial about the same project i've been dreaming of (and the reason I started watching your channel in the first place) is beyond incredible!! Thank you so much, you're the best react teacher I've seen!!

  • @pedrotaq
    @pedrotaq9 ай бұрын

    All done and dusted, currently looking into ways to add a custom domain and new features. Thank you so much! Your channel has the best React JS tutorials in all of youtube. Cheers!

  • @PedroTechnologies

    @PedroTechnologies

    9 ай бұрын

    Great to hear!

  • @k303k
    @k303k9 ай бұрын

    Looking forward to your Next.js full course Pedro🎉

  • @oloyang431
    @oloyang4318 ай бұрын

    Hey Pedro! Have to say your tutorials have been extremely useful. You really have a way of simplifying concepts in React. I was wondering if you could make a tutorial on react window or react virtualized? I'm currently doing a project where I'm displaying 250 countries on the page. I'm using grid-template-columns repeat autofill with minmax size. It's all really responsive when changing screens but when I try switching between light and dark mode the performance really takes a hit. I've tried getting react window and virtualized to work, but unsuccessfully. There really isn't any good tutorial on displaying grid with a lot of items. Keep up the good work bro! You're an inspiration!

  • @rishabh4893
    @rishabh48936 ай бұрын

    thank you so much for this amazing tutorial appreciate it, pedro

  • @ravindrapunekar8433
    @ravindrapunekar84338 ай бұрын

    Congrats on graduating🥳🥳 and Thank you for such amazing projects.

  • @user-gi7vy1gb1n
    @user-gi7vy1gb1n9 ай бұрын

    Thanks for this project tutorial it will add some weightage in our resume ❤

  • @k303k
    @k303k8 ай бұрын

    I really love your video Pedro! I hope you will make more Nextjs and MERN videos

  • @leoneloliveira5737
    @leoneloliveira57379 ай бұрын

    Very helpful content. Thank you!

  • @HighTechGeeks
    @HighTechGeeks4 ай бұрын

    This was great video i was able to follow and build this app.

  • @imadel3647
    @imadel36479 ай бұрын

    We miss you bro ! Great content as always 👏

  • @PedroTechnologies

    @PedroTechnologies

    9 ай бұрын

    I appreciate that! Happy to be back :) Now im officially working full time and graduated college so I have more time to plan my vids!

  • @imadel3647

    @imadel3647

    9 ай бұрын

    @@PedroTechnologies ❤️

  • @K-EC-AmanKumar
    @K-EC-AmanKumar8 ай бұрын

    loved your video

  • @agpcreation
    @agpcreation9 ай бұрын

    thank you for this tutorial, can you make a simple library management?

  • @user-mv6eu3zq1p
    @user-mv6eu3zq1p8 ай бұрын

    Bro you the best in the world 🌎 thank you for everything 🙏 😊

  • @lukas.webdev
    @lukas.webdev9 ай бұрын

    Great video! Thanks for sharing! 😉🔥

  • @PedroTechnologies

    @PedroTechnologies

    9 ай бұрын

    Thanks for watching!

  • @mftv3459
    @mftv34599 ай бұрын

    Lot of love from Africa bro thank you for educative content

  • @PedroTechnologies

    @PedroTechnologies

    9 ай бұрын

    Thank you!!

  • @justraining1037

    @justraining1037

    8 ай бұрын

    Proud of you my bro

  • @afaqahmad8918
    @afaqahmad89189 ай бұрын

    great project

  • @andreyzinchenko6208
    @andreyzinchenko62088 ай бұрын

    Hi Pedro, it's useful, thank you! Could you consider a new proj to implement? Consists of 2 modules: - Nextjs 13 full-stack module, running some services for a customer (say, a user app) - AI LLM module, specifically trained/indexed for the user app, used by dev/test/support teams to evolve/maintain the user app (let's call it a side-car app). Side car app requirements might be as follows: 1. UI for pts 2-5 below. 2. Further enhancement/development of the user app according to customer's new requirements (input to the side-car); 3. Searching docs on the user app codebase (funcs, classes, etc) 4. Creating test cases for the user app 5. Analizing the user app logs (maybe reacting in real time, changing the app's settings, re-loading, etc.) In the future if we learn how to create such supplements for user apps I beleve we make a huge difference in automation..

  • @zhardzikra
    @zhardzikraАй бұрын

    thank u so much, god bless you

  • @yp2673
    @yp26739 ай бұрын

    Thank you so much 💜

  • @shbita
    @shbita9 ай бұрын

    Thanks for the video .

  • @VladyslavDihtiarenko
    @VladyslavDihtiarenko4 ай бұрын

    I like your straightforward explanation! In 2 hours I've mastered firebase auth and database, which is cool. I'm also going to add Typescript, shadcn/ui with Tailwind, and will think about the other functionalities, such as expense/income categories, fade in/out animations, grouping transactions by date, sorting transactions, dark mode and maybe I'll come up with the other ideas :)

  • @vinay_dias

    @vinay_dias

    2 ай бұрын

    Did you make it work ?

  • @lifeselements9945
    @lifeselements99455 ай бұрын

    Thank you Pedro for the amazing project. It is a perfect example of showing how to connect react and firebase, hope to see you to have more video.

  • @k303k
    @k303k9 ай бұрын

    Thanks a lot for the video Pedro!!! If you have free time pls make MERN tutorial Pedro💯

  • @crappycoders
    @crappycoders9 ай бұрын

    DAMN NICE

  • @user-iz8du7vr4p
    @user-iz8du7vr4p8 ай бұрын

    ❤❤, More projects on react + Firebase , and MERN

  • @joaoarthurbandeira
    @joaoarthurbandeira8 ай бұрын

    Hey Pedro, for NextJs, do you recommend deploying in Firebase or Vercel? Also, can i have my database in Firebase's firestore but deploy my website in Vercel? Are they the same in terms of performance? Finally, how can i add custom domain in firebase? Thanks!

  • @naveenbasyal001
    @naveenbasyal0019 ай бұрын

    I think this video is good for beginners ...

  • @PedroTechnologies

    @PedroTechnologies

    9 ай бұрын

    Thank you :)

  • @joaoarthurbandeira
    @joaoarthurbandeira8 ай бұрын

    Hey, Pedro, also how can i turn the 'firebaseConfig' values into environment variables in a secure way? If i say, for example, apiKey: process.env.NEXT_PUBLIC_FIREBASE_API_KEY (which is definied in my '.env.local' file), would that protect it in any regard? Because i heard that when you put the 'NEXT_PUBLIC' prefix at the beginning, it still exposes the value...Would firebase's 'App Check' or Google cloud's 'key restrictions' be a good way to protect? Thanks!!

  • @bhargav8263
    @bhargav82637 ай бұрын

    great video

  • @user-ln2ud8xb3n
    @user-ln2ud8xb3n3 ай бұрын

    hello, i really love the video but why didn't you include a delete button to clear out the previous transaction and also include the date or its monthly

  • @Shivam-bx7tb
    @Shivam-bx7tb4 ай бұрын

    16:44 install firebase CLI 17:14 deploy to firebase hosting 21:04 Exact

  • @akalyad5465
    @akalyad54653 ай бұрын

    which backend is used here??

  • @suhaybahmed3813
    @suhaybahmed38133 ай бұрын

    So all the users will be storing their expenses in a single collection, just that each document will have a different userid? Wouldn't it be better if we made a separate collection for each user?

  • @wei7360
    @wei73609 ай бұрын

    i think you cut out the portion on what we select after we do firebase init. not sure which one you chose

  • @aaqilyousuf4907
    @aaqilyousuf49075 ай бұрын

    when i try to login using google popup it show an error Cross-Origin-Opener-Policy policy would block the window.close call. what should i do please answer this question, Thank you

  • @wei7360
    @wei73609 ай бұрын

    this course is soooo complicated. i need to probably watch this 100 times to get it. hahahaha

  • @PedroTechnologies

    @PedroTechnologies

    9 ай бұрын

    Hahaha you mean complicated as my explanation is not clear or the topic in itself is hard? Either way I hope you enjoyed it :)

  • @wei7360

    @wei7360

    9 ай бұрын

    @@PedroTechnologies its complicated because im coding along with next.js and since the file structure is a lot different, its adds a layer of challenge on top of it. you explain everything very well, the reason i watch your channels is because your explanations are to the point at the same pace my brain can process :P. Would be great if you can translate this video to next.js since there are a lot of "client" and "server" components.

  • @alexanderkomanov4151
    @alexanderkomanov41518 ай бұрын

    Is there a recomendation not to use CRA anymore? Isn't it?

  • @damienchung1409
    @damienchung14098 ай бұрын

    Can't see the transactions at 1:18 Uncaught Error in snapshot listener: FirebaseError: [code=failed-precondition]: The query requires an index. Shows in my dev tools

  • @raoufbakhti7786
    @raoufbakhti77869 ай бұрын

    Can you make nextjs full course and application thank you

  • @PedroTechnologies

    @PedroTechnologies

    9 ай бұрын

    This is already in the works ;)

  • @pedrotaq
    @pedrotaq9 ай бұрын

    I think you accidentally left out the part where you explain which features to install at around 17:28. What did you end up choosing? Thanks!

  • @PedroTechnologies

    @PedroTechnologies

    9 ай бұрын

    I do all of that in the end of the video :)

  • @pedrotaq

    @pedrotaq

    9 ай бұрын

    thank you for the quick reply! I'm watching it from start to end first, then I'll actually copy it. Cheers man, have a good weekend!@@PedroTechnologies

  • @alveek
    @alveek9 ай бұрын

    I think it's time to write in Typescript by default..

  • @PedroTechnologies

    @PedroTechnologies

    9 ай бұрын

    Next vid is in TypeScript! I change it based on the difficulty of the project.

  • @eshw23

    @eshw23

    9 ай бұрын

    Thank you like bruh

  • @saminyasar004
    @saminyasar0049 ай бұрын

    why are you still using create-react-app instead of vite?

  • @PedroTechnologies

    @PedroTechnologies

    9 ай бұрын

    Tbh this is just cause I find it simpler to relate to a bigger audience. Since what i am teaching is more of the functionality and the react part of things, it shouldn't be that big of an issue. But i might use vite in future vids :)

  • @TedMosby-fk5gj
    @TedMosby-fk5gj9 ай бұрын

    Not sure if it makes much sense to use Javacript, everyone wants Typescript, plus why firebase and create react app? Wed learn much more if you taught modern tech, like Nextjs 13, or React with exprss and sql. Thank you.

  • @PedroTechnologies

    @PedroTechnologies

    9 ай бұрын

    That is a great point! Tbh I think every technology has its merit. Just bc NextJS is more modern then CRA, it doesn't mean everyone should stop learning CRA. I try to make different videos for different skill levels. This was more beginner (CRA, JS, firebase), but like the next one will be more advanced (MERN, TypeScript, State management)... I want to make content for everyone, but I get what you mean and I appreciate ur feedback :)

  • @eshw23

    @eshw23

    9 ай бұрын

    ​​@@PedroTechnologiesOk thanks you just have endless firebaee videos on your channel, but none of the newer stuff most people actually want to learn. I feel like beginners will be fine with your previous firebae videos they are great.

  • @enaikeleomoh9039
    @enaikeleomoh90397 ай бұрын

    hey Pedro ,typescript projects

  • @georgevarghese9201
    @georgevarghese92015 ай бұрын

    hey i'm stuck at 1:17:00, my map function is not working for some reason and after looking over the code multiple time everything seems to be correct, would anyone happen to know why?

  • @prajwalshaw9217

    @prajwalshaw9217

    3 ай бұрын

    Hey there...I am facing the same error too.After enabling the index the transaction should be displayed..but only the currency alongwith the black dot is being visible...the description,transactionAmount and type are not being printed...by any chance were you able to resolve this issue...if yes then can u kindly tell me the error.

  • @ummm.....9465

    @ummm.....9465

    10 күн бұрын

    make sure u write transactions in place of transaction, I was doing the same error, but later figured it out

  • @Sarajboos12
    @Sarajboos127 ай бұрын

    How to delete all document of a specific user

  • @bilal5488
    @bilal54889 ай бұрын

    1 project with mern please

  • @PedroTechnologies

    @PedroTechnologies

    9 ай бұрын

    Next video :)

  • @bilal5488

    @bilal5488

    9 ай бұрын

    @@PedroTechnologies 😳 really thankew thankew thankew sooooo much for that am beginner in that please make liken in which forget password or a if a user do something his name show that he do that am soo confused in that please

  • @Kang_3

    @Kang_3

    9 ай бұрын

    ​woww great.Thank youu🎉❤

  • @user-ct2ei2qv1t
    @user-ct2ei2qv1t8 ай бұрын

    Hey Pedro at 57:00 I am getting the error addDoc() "Function addDoc() called with invalid data. Unsupported field value: undefined (found in field userID in document transactions/ZryPQKuRKqLAXLECvv0g) FirebaseError: Function addDoc() called with invalid data. Unsupported field value: undefined (found in field userID in document transactions/ZryPQKuRKqLAXLECvv0g)"

  • @VictorSandoval-nq8hf

    @VictorSandoval-nq8hf

    8 ай бұрын

    hello i am having the same error wondering if you fixed it or know how too. Please let me know thanks

  • @i-001

    @i-001

    8 ай бұрын

    got the same thing too @@VictorSandoval-nq8hf

  • @i-001

    @i-001

    8 ай бұрын

    Check the index file inside the expensetacker folder. I had missspelling inside the onSubmit function @@VictorSandoval-nq8hf

  • @Abubakar--xs7gc

    @Abubakar--xs7gc

    6 ай бұрын

    i am also facing same problem can you help out

  • @jyotishmoydeka6804

    @jyotishmoydeka6804

    6 ай бұрын

    hey did you find any solutions if yes plss help?

  • @CoconutwCoco
    @CoconutwCoco9 ай бұрын

    51:13

  • @akalyad5465
    @akalyad54653 ай бұрын

    is Express.js is used here???? pls reply anyone

  • @nileshjain1090

    @nileshjain1090

    Ай бұрын

    its firebase..

  • @alasassi5889
    @alasassi58899 ай бұрын

    Do you think AI will replace us ?!😢

  • @PedroTechnologies

    @PedroTechnologies

    9 ай бұрын

    No lol

  • @fahadkabooroo7395
    @fahadkabooroo73959 ай бұрын

    ❤❤❤ from.🇵🇰👍✌️

  • @anthonygesora2517
    @anthonygesora25179 ай бұрын

    Could you work on the youtube like button... i wish i could give you a thousand Thumbs up on a click to make it 1198 brooo💣💢💥

  • @0329zach
    @0329zach2 ай бұрын

    ..

  • @HrissW
    @HrissW7 ай бұрын

    This is the most gay UI I have ever seen!

  • @eshw23
    @eshw239 ай бұрын

    Create react app ewwwww

  • @skyhappy

    @skyhappy

    9 ай бұрын

    Vite master race

  • @PedroTechnologies

    @PedroTechnologies

    9 ай бұрын

    It makes no difference in the tutorial hahaha but since a lot of people are asking for vite, this might be the way to go. I don't use CRA on my own projects, I just use it in vids cause I assumed it would be what most people are familiar with. More videos on vite and nextjs coming :)

  • @bradleylim3558
    @bradleylim35584 ай бұрын

    Hey Pedro I'm having an issue with the authentication after clicking on the "Sign in with Google" button. I'm getting this error: Uncaught (in promise) FirebaseError: Firebase: Error (auth//static/media/firebase-config.82c018796117d2e15dcc). I think it has something to do with "const results = await signInWithPopup(auth, provider);" since changing the auth value results in a different error. Could this be an issue with my Firebase setup?

  • @bradleylim3558

    @bradleylim3558

    4 ай бұрын

    Also when importing auth and provider from the firebase-config I have to import it like this for some reason or else I'm hit with an error: import { default as auth, default as provider } from "../../config/firebase-config";

  • @tusharyadav5874

    @tusharyadav5874

    4 ай бұрын

    ​@@bradleylim3558you can try using console.log and check at every step if everything is coming the right way or not then just use those things.

  • @moonchild_ankita
    @moonchild_ankita6 ай бұрын

    At 1:22:13 I'm getting error for {name}. Following is the error: 'name' is deprecated.ts(6385) lib.dom.d.ts(27236, 5): The declaration was marked as deprecated here. Unexpected use of 'name'.eslintno-restricted-globals const name: void @deprecated

Келесі