Connecting Firebase to a Contact Form

Поділитися
Вставка
  • Опубліковано 18 гру 2024

КОМЕНТАРІ • 530

  • @idlevandal69
    @idlevandal69 6 років тому +116

    Firebase has changed, make sure when you go to Database in Firebase, scroll down and select the 'Realtime Database' otherwise it won't work.

    • @rijanregmi7956
      @rijanregmi7956 6 років тому

      thanks dude, i'm searching for your comments. it helped me :)

    • @waynebr2659
      @waynebr2659 6 років тому

      Thanks

    • @MikevanKuik
      @MikevanKuik 6 років тому +1

      Thanks man!!!
      I wasn't sure why it wasn't working for me, then I saw your comment and it worked instantly.

    • @piagjabr
      @piagjabr 5 років тому +1

      @@MikevanKuik Don't understand what to do !! Go to the Firebase Database docs and ??

    • @MikevanKuik
      @MikevanKuik 5 років тому +6

      ​@@piagjabr
      I've made a screenshot for you on Pasteboard.
      pasteboard.co/I0WSec5.png
      If you click "Cloud Firestore" next to the Database label you'll get to see the two options.
      I hope it helps you out.

  • @aayemi
    @aayemi 6 років тому +1

    Anytime I see Brad course anywhere either on UA-cam or Udemy, I adjust my seat and get ready to learn new thing in a precise manner. Brad never disappoint. All his courses are AWESOME!!!. Thank You Brad.

  • @FlaviaZancanaro
    @FlaviaZancanaro 7 років тому +6

    Thanks! You help me a lot. I bought your course (bootstrap) in Udemy and now I just finish my contact form on my portfolio.
    You're an amazing teacher!

    • @wingsaber629
      @wingsaber629 5 років тому

      Were you able to actually send an email with the contact form? It requires some advanced Javascript and a backend server.... It's so hard to implement the sending of an actual email thru a form.

  • @JohnLittlefieldWork
    @JohnLittlefieldWork 6 років тому

    I applaud your "mobile first" approach to development and design. Thank for coming up with an example that is used on a real website. Firebase is very compelling it's nice to see how to implement step by step.

  • @techWithSaifullah
    @techWithSaifullah 4 роки тому +1

    #Everyone include the firebase database CDN link. Otherwise it will not work properly.
    Thank you so much @Traversy Media. This tutorial helps me a lot to complete one of my projects.

  • @alexreitz3146
    @alexreitz3146 7 років тому +1

    Your videos are phenomenal. You have 156k subs and FCC has 200k. You're a one man show and you almost have the same impact as FCC

  • @alanpramuk9
    @alanpramuk9 7 років тому +1

    You are the man Brad. I've been following your videos for about a year now and I have yet to find someone who teaches as well as you do.

  • @jontelep5056
    @jontelep5056 7 років тому

    I admire you sir, it takes a long long time to find a tutorial that puts the configuration of the webapp in the .js file. The correct way to do it, first video i've watched that actually helped write to the db. Thank you.

  • @reachsofi
    @reachsofi 6 років тому

    This is the most easiest follow through video I have ever seen, you have an answer for everything one can think of! Just want to add that firebase gave me a warning to use specific CDN scripts eg firebase-database and firebase-app and not the generic firebase.js one.

  • @johnhschuster
    @johnhschuster 6 років тому

    Super thanks, just got interested in Firebase, didn't know it was part of my Google setup. This is a great example of "You don't always need a framework" and how the new JS has got da power.

  • @ayounghosh9218
    @ayounghosh9218 4 роки тому +8

    I loved that calm attitude with which you taught, you're the man

  • @drewaugust
    @drewaugust 7 років тому

    Great video! Followed along and got the contact form on my website up and running in 45 minutes. This is one of the last things I wanted to complete before deploying my site. It is my first site and will be hosting using Github!

  • @maromasraf8650
    @maromasraf8650 4 роки тому

    After 3 years but it's never TOO LATE
    Thanks A Lot Bro,
    Perfect Tutorial :)

  • @RussellSpencerOfficial
    @RussellSpencerOfficial 7 років тому

    This means I don't have to use php for a contact forms, great. Firebase might also solve some of my hosting issues.
    I genuinely always seem to learn something new and valuable with these videos.
    Thanks!

  • @mcurtis13
    @mcurtis13 7 років тому +1

    i spent 2 nights trying to find a video on this i dont know how i missed yours ! thanks

  • @bernacaner544
    @bernacaner544 6 років тому

    You are amazing. After 15 years of software development in sql database I was not looking forward to firebase. We are currently developing in all platforms, iOS, android web and this was a great help. Will check your Udemy courses as well.

  • @mondal9509
    @mondal9509 4 роки тому +1

    thank you verrry much i have been searching for comment system from weeks at last found yours and it is working perfectly.

  • @JBuchmann
    @JBuchmann 7 років тому +31

    Excellent as always, thanks! Would be great to follow up on this project and do something with the form once submitted. For example, a common use case would be to send the submitted info to an email address. If Firebase can also send emails, then that would be a great continuation of the series. :)

    • @filipevalentegomes2383
      @filipevalentegomes2383 7 років тому +3

      John Buchmann was gonna write the exact same thing

    • @jarnobog7292
      @jarnobog7292 7 років тому +2

      John Buchmann me too

    • @emveeoh
      @emveeoh 7 років тому +4

      Hi... sorry to pile on, but I would also like to see this series continue showing examples of how to send a notification email once a contact has been received by Firebase. Also, how we can pull data out of Firebase and, possibly, show the messages on an Admin page...
      Also, what is the proper way to secure this form once it is deployed? Should the Firebase RULES be set to only allow WRITES from the live web server IP address? Maybe, you could go into that in another video too?

    • @grimsonforce7504
      @grimsonforce7504 5 років тому

      Agreed

    • @accugeospatial6828
      @accugeospatial6828 5 років тому +2

      Firebase is now listed on zapier. You can get zapier to deliver the message to an email, an api or any platform that you wish.

  • @edudev2975
    @edudev2975 7 років тому

    Thanks Traversy..i have learnt alot of front -end development from you. You are the greatest of them all

  • @SrinivasBuddha69
    @SrinivasBuddha69 7 років тому +1

    Thanks brad, till now I was using only php contact form for all my website projects. And now I can use firbase which comes very handy. As usual your videos are so helpful.

  • @AdamE2000_
    @AdamE2000_ 6 років тому

    I'm just catching up with all your content brad, you've changed your life around and I am so happy for you. All the best man.

  • @iUmerFarooq
    @iUmerFarooq 5 років тому +78

    Sir, please make a 2019 video on the same topic and host, update many other things on firebase?

    • @FordExplorer-rm6ew
      @FordExplorer-rm6ew 5 років тому +9

      Agreed. Firebase has changed and I'm super confused.
      This is where some of my best apps are

    • @FordExplorer-rm6ew
      @FordExplorer-rm6ew 5 років тому +7

      Upvote this so traversy sees this. We need more firebase tuts.
      The majority of the tuts on YT and everywhere else are lacking or just plain deprecated by now

    • @elizagilpin1120
      @elizagilpin1120 4 роки тому +3

      @@FordExplorer-rm6ew YES I need updated tutorials bc everyone's are old and I'm so confused

    • @MotM200
      @MotM200 3 роки тому +2

      Yes, the firebase is not working at all. Because the version of Firebase used here is 4.3 while the current version is 8.2 . The error I am getting is: "Cannot read property 'ref' of undefined".

    • @xzecxeed2548
      @xzecxeed2548 3 роки тому +1

      @@MotM200 bro Iliterally got firebase.database is not a function...

  • @muthuhari8875
    @muthuhari8875 7 років тому +1

    Brad just finished your mean stack app and plan to study firebase ,thanks brad

  • @krantinebhwani6125
    @krantinebhwani6125 6 років тому +5

    I don't get why at 13:57 he does :
    let newMessageRef = messagesRef.push();
    newMessageRef.set({
    ...
    });
    Isn't .push() usually with something inside the () to push onto the target? So messagesRef.push(object) pushes object onto the firebase references messagesRef? What happens there when he pushes something to a variable with nothing inside the push, it's not on MDN JS docs - everything there shows that a argument is needed.
    And then after he does a .set, how does that relate to the above? Thanks for any answers, I really want to understand everything he teaches in this video.

    • @Albertmars32
      @Albertmars32 6 років тому

      i have the same questions , i guess you could do it either way but .push({object}) is the preferable way, at least according to the docs

    • @valtsvilcans6776
      @valtsvilcans6776 4 роки тому +1

      For anyone whos watching this now and has this question - push() is a firebase method that gives an ID. newMessageRef then is a path to that ID and we call set() to save data to this path. You can take off .push() and see what happens to data when submitting to get better understanding

  • @dmays67
    @dmays67 7 років тому

    Had never heard of Firebase before this and am looking forward to trying my first crack at Javascript and Firebase. Love that your vids almost always translate to a fun and usefull project of my own. Thx bro.

  • @shivamgupta2842
    @shivamgupta2842 7 років тому

    I was thinking of learning firebase, and voila I got tutorial by brad. Thnx Brad. waiting for the authentication part

  • @GringoProductions
    @GringoProductions 6 років тому +2

    You sir, are amazing, I love how chill you explain everything and love the fact that you add comments to everything, even the most obvious lines of code. keep up the good work !!

  • @newnam
    @newnam 5 років тому

    Collecting this information looks fairly straightforward. It might be a nice follow-up video to show how to connect to that same collection of data behind admin wall and view all of the submissions in a tabular format.

  • @juancarlosgonzalez8383
    @juancarlosgonzalez8383 7 років тому

    very clever use of getInputVal() function to capture values by passing an id... Thank you Brad!

  • @julian.castro18
    @julian.castro18 4 роки тому

    "hey what's going on guys, so a few days ago, or I don't know, maybe it was even yesterday..."
    how can you not love this guy

  • @milanm6538
    @milanm6538 7 років тому +6

    Firebase is so great, thanks Brad. Please do more advanced example with firebase, like file upload and notification

    • @gaminggenes320
      @gaminggenes320 5 років тому +1

      And send email notification too. ^^

  • @jesusbohorquez2098
    @jesusbohorquez2098 4 роки тому

    a tip: if you play Brad's videos at 1.25 speed it is better and sounds more energetic

  • @Kumar-du2pr
    @Kumar-du2pr 7 років тому

    Always come here with a hope to learn something new and guess what i take a hell lot back from your videos. Thank you so much Mate. Appreciate all your effort. Cheers.

  • @criteria6972
    @criteria6972 4 роки тому

    Is there a way to receive the information from the contact form and send it to an email address using the real time database and without using node?

  • @kensleylewis
    @kensleylewis 3 роки тому +8

    Nice guide. Could you put together a 2021 guide on the same topic? Seems like firebase has dramatically changed in how we communicate to their DB, sense the time of this original video.

    • @Didrik147
      @Didrik147 2 роки тому +2

      I made it work with some changes.
      In the index.html, I instead used:
      In main.js, I Used the following code (changing the firebaseConfig to my own, of course)
      const firebaseConfig = {
      apiKey: "xxx",
      authDomain: "xxx",
      databaseURL: "xxx,
      projectId: "xxx",
      storageBucket: "xxx",
      messagingSenderId: "xxx",
      appId: "xxx",
      measurementId: "xxx"
      };
      // Initialize Firebase
      firebase.initializeApp(firebaseConfig);
      That worked for me.

    • @jeffreyhill854
      @jeffreyhill854 Рік тому

      @@Didrik147 this did the trick thank you!

  • @pilwonjeon8618
    @pilwonjeon8618 7 років тому +1

    I have only heard about firebase without using.
    This short video makes me know idea about firebase thanks for explanation

  • @dravidiandavid819
    @dravidiandavid819 6 років тому

    My Guy! Great, great tutorial. Finally, some pure vanilla javascript. Awesome!!!!

  • @amandavalverde187
    @amandavalverde187 4 роки тому

    This was unbelievably helpful and straightforward! I'm new to JS and Firebase, but I still managed to get a simple form linked to a database up on my final project page. Thank you. :)

  • @caroldanvers265
    @caroldanvers265 6 років тому

    Thank you Brad!!!! YOU are the coolest dude. I've always wanted to learn Firebase and never thought I would go this far in the learning process. NICE JOB!!

  • @alexandros-markovits
    @alexandros-markovits 7 років тому +4

    Really nicely explained, more of firebase would be appreciated.

  • @MrVisheshsingh
    @MrVisheshsingh 7 років тому

    Thanks a lot, Brad! Always wanted to get to know the backend side of form submission. I will implement this on my online portfolio. Thanks Thanks Thanks again.

  • @semmyhakimi2091
    @semmyhakimi2091 6 років тому

    Men you're amazing !! I love your videos and what you want to share about your background and your experience !!! God bless you bro you and your family particularly your son !!!

  • @TripNx
    @TripNx 7 років тому +12

    Hey, its amazingBrad! Perfect thing, you just mentioned in the end about the authentication, bravo! tentimes yes! If you could built a blog based on Firebase, guess a lot of tough youtubers would be be impressed! And please Brad, find some free time to go further with that mobile first project :)

  • @ThisWorldOfTech
    @ThisWorldOfTech 6 місяців тому

    Brad is the best in my own ranking

  • @khaled-dev
    @khaled-dev Рік тому +4

    2023:
    import { initializeApp } from "firebase/app";
    import { getDatabase, ref, push } from "firebase/database";
    const firebaseConfig = {
    your config data
    databaseURL: "your database link" // signup for Realtime database through the site and paste the link here
    };
    const app = initializeApp(firebaseConfig);
    const database = getDatabase(app);
    const yourDataTableRef= ref(database, "yourDataTableName")
    document.querySelector('form').addEventListener('submit', (e) => {
    const data = { your data }
    push(yourDataTableRef, data)
    alert(success)
    })

  • @Larasati_Mbunpagi
    @Larasati_Mbunpagi 7 років тому +4

    Thank you for making such a great tutorial, Brad.
    You make the javascript learning process much smoother..
    Please make a vanilla javascript user registration form with firebase authentication.

  • @KalyaElisha
    @KalyaElisha 7 років тому

    Great tutorial Traversy. You can make a great trainer.

  • @esakib
    @esakib 3 роки тому

    Take love, sir. You are a great teacher❤❤❤❤

  • @uimonk
    @uimonk 4 роки тому +1

    requesting to make the same video again in 2020.. a lot has changed

  • @Fonsequiche
    @Fonsequiche 6 років тому +1

    This is one of the best tutorials i´ve found, thank you!

  • @tejalshah9544
    @tejalshah9544 3 роки тому

    Brother no words to thank you

  • @eggyegea
    @eggyegea 5 років тому +17

    I got mine to work with a few tweaks I found in the comments:
    *1.) Change JS script to below (in **_exactly_** this order):*


    *2.) When editing rules in your Firebase database:* Click dropdown next to Database and click *Realtime Database* instead of _Cloud Firestore_
    _Thank you to idlevandal69 and Dylan Thunn!_

  • @surinfarmwest6645
    @surinfarmwest6645 7 років тому

    Brad,
    absolutely brilliant. Thank you very much, I was not aware of Firebase so learnt something new again today. Need to learn more about js now.
    Farm West

  • @hachij_
    @hachij_ 7 років тому

    just finished this course. Taught me new things especially the javascript one! :))

  • @tangudurupak7910
    @tangudurupak7910 7 років тому

    this tutorail is really good also waitng for tutorail on other modules of firebase web such as authentication, Cloud firestore.... etc

  • @seedme
    @seedme 2 роки тому

    still found this useful after 4 years.

  • @reubenjosephcabrera8179
    @reubenjosephcabrera8179 7 років тому

    make a playlist on firebase including reading/display data and deleting data. excellent tutorial

  • @denhamk
    @denhamk Рік тому +1

    Would really love to see an updated version of this ... Firebase has changed a lot.. and the script is all different and it doesn't work for me.. keeps saying.. const app = initializeApp(firebaseConfig); -- unable to find variable initializeapp

  • @hirephpdevelopers3840
    @hirephpdevelopers3840 7 років тому

    Your tutorials are very informative.

  • @dudhaiyasagar7
    @dudhaiyasagar7 7 років тому +1

    *Tip* : also add *reload* function to reload the page for flushing entered data
    setTimeout(function(){
    document.querySelector('.sent').style.display = "none";
    }, 3000);
    //reload page
    window.location.reload();
    edit : not inside the timeout Function, Out side the function.

  • @AuthorReviews
    @AuthorReviews 7 років тому +2

    Hi, Brad. Is it possible to do a tutorial short video about "psd to html & css"? It would be nice to show different ways - either directly in photoshop or with app like brackets or something like that.

  • @lazarojavier2894
    @lazarojavier2894 4 роки тому +4

    Hey.. every time y push the submit button the page reloads and nothing happens .. I checked the script and everything is like in the video.

  • @machadoviewer
    @machadoviewer 5 років тому

    Thank you Brad, your video helped me a lot! I will share it to others, for sure!

  • @mjpender9443
    @mjpender9443 7 років тому

    As always, your video is very helpful. I always look for your videos when learning a new language or platform. Thank you. m.j.

  • @SiyamandRashid
    @SiyamandRashid 7 років тому

    another question: how to make the contact app available offline like a phone contact app, in order to access any contact and modify it in offline mode?

  • @Thanhnhon171
    @Thanhnhon171 5 років тому

    thanks a lot for your help..i was being in trouble and fortunately i found u as a saver of my life..I was actually grateful to u!!
    by the way....Hopefully you will make more and more vid like this..thanks a gain

  • @aloistrancy4312
    @aloistrancy4312 5 років тому

    hi at 10:48 , for the var part I encounter problem that my value is declare but never read. could anyone help me with this?

  • @nebraska7891
    @nebraska7891 6 років тому

    Great explanation. It was easy to expand this to fit my contact form. Thank you!

  • @shaileshsundram
    @shaileshsundram 7 років тому

    That was awesome. Plz do a CRASH COURSE video on FIREBASE.

  • @timothysebulime7731
    @timothysebulime7731 6 років тому

    Brilliant job right there Brad, well explained thanks

  • @bismillahithouse
    @bismillahithouse 3 роки тому +1

    How to read this firbase contactform database, have any video about this..

  • @javascript_developer
    @javascript_developer 6 років тому

    Thank you. Its awesome to start with so crystal clear explanaiton.

  • @khalilnasri4888
    @khalilnasri4888 5 років тому +4

    I have a problem !!!!
    help plz !!
    Uncaught TypeError: firebase.database is not a function

    • @adanruiz2305
      @adanruiz2305 5 років тому

      in the file you're having troucble with, write this:
      import firebase from 'firebase/app';
      or
      import {firebase} from 'firebase/app';
      it worked for me, good luck

    • @dylant5965
      @dylant5965 5 років тому +1

      Add that under the other firebase cdn in index.html

  • @blackandwhite7728
    @blackandwhite7728 7 років тому +10

    Hi Brad, Great tutorial as always. Thanks..
    How to prevent bad guys from using my credentials & pushing data to firebase, since credentials are visible to every one.?

    • @peterkim9696
      @peterkim9696 7 років тому +1

      Black and White good quation

    • @milanm6538
      @milanm6538 7 років тому

      Interested in this one

    • @vipzip8863
      @vipzip8863 7 років тому +1

      You don't use the credentials on the front, you make a call to your server and your server calls firebase. Never store any information on the front.

    • @selfoscillation
      @selfoscillation 7 років тому

      You would normally add authentication to your web page when using anything that will have the ability to submit to Firebase. You can add rules to your database in Firebase to only allow items to be pushed if authenticated. Having the name of the project/databaseUrl etc. is useless if there are proper rules set up.

  • @SpurgeonB
    @SpurgeonB 7 років тому +4

    Dear Brad, Thanks a ton for the nice videos and educative content and sharing your brilliant knowledge! God bless you abundantly!

  • @NewRuLive
    @NewRuLive 7 років тому

    Great tutorial, but one question - at 7:48 you declared a function 'submitForm' with a parameter of 'e', but when you called it in 'addEventListener' you didn't pass in that parameter, is this a mistake or I am misunderstanding Javascript?

    • @NewRuLive
      @NewRuLive 7 років тому

      I understand that, but in the method call he didn't pass that 'e'

  • @brigetokai3756
    @brigetokai3756 5 років тому +8

    I got this error: " Uncaught TypeError: firebase.database is not a function "

    • @carolineguimaraes7456
      @carolineguimaraes7456 4 роки тому +8

      Try to add this:
      My Firebase version is 7.7.0.

    • @luislaureiro454
      @luislaureiro454 4 роки тому

      change (config) for (firebaseConfig), works for me. Line 11

    • @davidjj
      @davidjj 3 роки тому

      I got a : Uncaught TypeError : addEventListener

    • @rahzy2480
      @rahzy2480 3 роки тому

      Thank you. it worked!

  • @empreenderdominickcaetano
    @empreenderdominickcaetano 3 роки тому

    Thank you so much for your help man. I loved the video!

  • @ashfaqyunus74
    @ashfaqyunus74 4 роки тому

    good explanation, if make one more for crun that will be great for us

  • @shivapandey4311
    @shivapandey4311 4 роки тому +1

    I'm getting "Cannot read property 'push' of undefined" error, somebody please help me with this. Please reply

  • @ManishKumar-ts2sp
    @ManishKumar-ts2sp 4 роки тому

    Very helpful thank you mr. Brad 😊

  • @Quassar18
    @Quassar18 3 роки тому

    Despite the difference between current firebase environment and the one used in this video, there is a crucial question not being answered: what happens if someone tries to abuse your contact form and submit it millions of time? Since you are using database directly, you will have no control on that and you need to be careful with billing and set up threshold alerts (at least). To solve this issue you need to set up a middle layer, it could be an express node server and use it to filter out all possible misuse.

  • @adwumawura9160
    @adwumawura9160 7 років тому

    Great. Very impressive. Have been looking for something like this.

  • @SatorMoon
    @SatorMoon 6 років тому

    This was super super useful! Thanks! Great work Brad!

  • @jadeddib
    @jadeddib 7 років тому +1

    Keep up the good work! Love from morocco ♡

  • @TheFakeMahdi
    @TheFakeMahdi 6 років тому +1

    Is there a way to get an email when the contact form is submitted?

  • @sergeys2018
    @sergeys2018 6 років тому

    Dude your videos are awesome! one of the best tuts maker out there!, it would be great if you could ,maybe make one about notifications emails, like how to send all the form data from Firebase or any other noSql - to an actual users email address/s, for some reason this topic is totally NUll online (

  • @TrendForJesus
    @TrendForJesus 7 років тому +4

    excellent bro..i have a doubt .. .when i input the form its stored in realtime databases..Good..but i want a immediate email to my Mail ID it is possible?.please help me...Thanks alot

  • @thebrandteam1811
    @thebrandteam1811 7 років тому

    Really good stuff Brad, keep them coming.

  • @Jakhongir84
    @Jakhongir84 7 років тому

    Man, you are the best! As always, thanks for what you do! I would love to see some more vanilla JS tutorials.

  • @nayanpatil1060
    @nayanpatil1060 6 років тому

    Excellent, how can we store the value from the drop-down box to firebase?

  • @DanOhCaptainDaniel
    @DanOhCaptainDaniel 3 роки тому

    8:17 I'm getting an uncaught typeError: for 'addEventLister' of null

    • @DanOhCaptainDaniel
      @DanOhCaptainDaniel 3 роки тому

      forgot to type this in my index.html below h3 "Email us"

  • @howto2515
    @howto2515 7 років тому

    Hi Brad, thanks a lot for a great video as always. Hope this can be a serie of videos, for small websites with firebase. Br, Jacob/ Sweden

  • @usmanpkz
    @usmanpkz 4 роки тому +1

    I am not getting an error in the console but my data is not saving in the database. any idea?

  • @evlorenzoni
    @evlorenzoni 5 років тому

    Great Brad, as always very informative and
    straight to the point ! 😀

  • @romainrouiller4889
    @romainrouiller4889 5 років тому

    but how do you receive this data from firebase to your mailbox in plain text ...? I dont see the point if not ...

    • @csowm5je
      @csowm5je 5 років тому

      search for petsapp in you tube that will explain how to get the data from firebase ...

  • @FordExplorer-rm6ew
    @FordExplorer-rm6ew 5 років тому

    11:50
    Whenever I get to this prompt.
    Firebase makes me use a 2nd named container.
    "Give your project a nickname"
    So essentially it has 2 containers whenever you enable web app on firebase?
    Been trying to figure out how to work with just the one container.
    Help?

  • @IpayeAlameen
    @IpayeAlameen 7 років тому

    Seriously, you're a blessing👏. i just got your udemy node course

  • @harshjangir5733
    @harshjangir5733 3 роки тому +2

    Uncaught TypeError: firebase.database is not a function
    this error show on my console

  • @Shailesh971
    @Shailesh971 7 років тому +1

    Thank you Brad. Please make a full Udemy course on Javascript with some projects.