Fourteen weeks into my coding bootcamp, Epicodus gave me a day to reflect on my strengths and weaknesses as a programmer. It was an open-ended assignment to think about my strengths and weaknesses, and to dive into something I need to work on or learn more about.
This project was generated with Angular CLI version 1.0.0.
$ git clone [this repository]
$ cd personal_reflection_project
$ cd discussion-forum
$ npm install
$ npm install --save-dev @types/jasmine
$ bower install -g
to install bower if needed
$ bower install bootstrap --save
- Firebase setup:
- Go to firebase and login or create a free account.
- Go to the firebase console and create a project called 'discussion-forum'.
- Click 'add firebase to your web app'.
$ touch src/app/api-keys.ts
then add the following code:export var masterFirebaseConfig = { apiKey: "xxxx", authDomain: "xxxx.firebaseapp.com", databaseURL: "https://xxxx.firebaseio.com", storageBucket: "xxxx.appspot.com", messagingSenderId: "xxxx" };
but replace the x's with your information.- Add the following code to your .gitignore file:
#Firebase credentials /src/app/api-keys.ts
- Visit the Firebase console, click 'discussion-forum,' and click the database option from the lefthand side of the menu.
- Click 'Realtime Database,' then 'Rules.' Set the value of .read and .write to 'true' and click 'publish.'
- 'Click 'Data,' then click the three dots in the upper righthand corner. Select 'Import JSON' and navigate to 'sample-posts.json' from this project.
Run ng serve
for a dev server. Navigate to http://localhost:4200/
. The app will automatically reload if you change any of the source files.
Run ng generate component component-name
to generate a new component. You can also use ng generate directive/pipe/service/class/module
.
Run ng build
to build the project. The build artifacts will be stored in the dist/
directory. Use the -prod
flag for a production build.
Run ng test
to execute the unit tests via Karma.
Run ng e2e
to execute the end-to-end tests via Protractor.
Before running the tests make sure you are serving the app via ng serve
.
To get more help on the Angular CLI use ng help
or go check out the Angular CLI README.
- Clear documentation: my commits and READMEs are generally clear and easy to understand.
- Attention to detail: I am careful when writing initial code and am often able to find small syntax errors.
- Affinity for test-driven development: I like the process of writing a test first to clarify my purpose, writing the minimum amount of code to make it pass, and then refactoring.
- Love of learning: my favorite thing about coding is that I will always be learning new things.
- Deep understanding of concepts: once I learn a new concept, I generally understand it well and remember it.
- Clear personal communication: I am usually able to articulate my thinking clearly.
- Working in a team: I have really enjoyed working with and learning from my classmates at Epicodus. I have generally been able to communicate productively with my teammates both about code and interpersonal dynamics.
- Working independently: I think I have found a good balance between working through a problem on my own, and knowing when to ask for help.
- Experience: I had very little coding experience before beginning code school, so many tools and concepts are new to me.
- Persistence: I have been actively working on this and have gotten much better, but sometimes I still don't stick with a problem long enough.
- Slower learning curve for conceptual understanding: it takes me a while to learn new concepts.
- Big picture: I am sometimes able to make code work without a solid understanding of why it works and how the different pieces fit together. Sometimes my learning is also somewhat scattered. I may quickly get a difficult concept while struggling to grasp a more basic one.
- Intimidated by new things: I am sometimes hesitant to jump into using a completely new tool or library.
One of my strengths is that I like to write tests, and one of my weaknesses is being intimidated by new things, so I am going to explore testing in Angular, which is completely new to me. Epicodus teaches students Angular in its JavaScript course, but does not touch on testing in Angular. I'm going to try to write an Angular application from scratch and test it thoroughly. I'm also going to explore integration testing with Protractor, and practice debugging in Angular. If I have extra time, I'll add Sass to my project.
- As a user, I want to...
- See all posts and several discussion categories on the main page.
- As a user, I want to...
- Click a category to visit its collection of posts.
- Click a post to view its contents.
- Add new posts to a discussion category.
- Update my post as necessary.
- Delete my post.
There are no known bugs at this time.
I started a project from this Epicodus lesson I hadn't tried yet, a discussion forum app. I began working through this angular testing tutorial. As I went, I took notes on Angular CLI Setup and Angular Testing.
Read Angular documentation and learn more about what the different components I'm importing are doing. Learn about Protractor integration testing. Read more about time management.
- JavaScript
- TypeScript
- Angular2
- Node
- Bower
- Bootstrap
- Firebase
- Jasmine and Karma
If you have any updates, questions, or suggestions please contact Margaret or make a contribution.
MIT License
Copyright (c) 2017 Margaret Berry