Known Issue: Students have reported receiving errors reading "Promise is not defined" or "Firebase has no exported member Promise". This is a known issue caused by using incompatible versions of the Firebase and AngularFire2 packages. To prevent this error, make sure you're installing version 4.0 of AngularFire2, and version 3.6.6 of the Firebase npm package.
If you receive this error on a project already in development, you can simply change the versions specified in your package.json file, like this:
... "angularfire2": "4.0.0-rc.0", "firebase": "^3.6.6", ...
Check out this GitHub Issue discussion both for more details on why this happens, and some exposure to some real-world open-source community troubleshooting and discussion. (You'll likely visit similar GitHub issue discussions on bug hunting expeditions at your future internship and job!)
Goal: Become comfortable integrating Firebase into an Angular application using AngularFire, including saving, deleting, updating and retrieving information from the database.
Begin by following along with the previous night's homework, and implementing new features into the online store application. Then choose one of the projects below to work on. Note that user stories referring to updating and deleting database entries will require concepts covered in Wednesday's homework.
Crowdfunding sites like Kickstarter, GoFundMe and IndieGoGo are growing in popularity. These sites allow users to post ideas for projects, products, or charitable acts, and to request funding. Other users can browse all the potential ideas, and donate to those they'd like to support.
Create a similar crowdfunding platform of your own! It could work exactly like the existing platforms linked above, or it could be something of your own creation. Here are some user stories to get you started:
This is a challenging, further exploration project that will require outside research. You should feel very comfortable with both the objectives for this week's independent project (available here), and locating and using sources outside our curriculum before beginning this project.
Essentially, when you click on a square that is not a mine, you are given a number to indicate how many spaces around the one that you clicked on have bombs. If you click on a bomb, the game is over.
Recreate Minesweeper in Angular. Make sure that your board is created dynamically and that when each tile is clicked it displays the number of tiles around it contain mines.