Code Monkey home page Code Monkey logo

personal_reflection_project's Introduction

Personal Reflection Project: Discussion Forum

A reflection on my development as a coder so far, 11.03.2017

By Margaret Berry

Description

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.

Setup and Installation Instructions

  1. $ git clone [this repository]
  2. $ cd personal_reflection_project
  3. $ cd discussion-forum
  4. $ npm install
  5. $ npm install --save-dev @types/jasmine
  • $ bower install -g to install bower if needed
  1. $ bower install bootstrap --save
  2. 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.

Angular Information

Development server

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.

Code scaffolding

Run ng generate component component-name to generate a new component. You can also use ng generate directive/pipe/service/class/module.

Build

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.

Running unit tests

Run ng test to execute the unit tests via Karma.

Running end-to-end tests

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.

Further help

To get more help on the Angular CLI use ng help or go check out the Angular CLI README.

My Strengths

  • 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.

My Weaknesses

  • 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.

Project Goal

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.

User Stories

  • As a user, I want to...
  • See all posts and several discussion categories on the main page.

Future Features

  • 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.

Bugs

There are no known bugs at this time.

How I Spent Today

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.

Future Study and Preparation

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.

Technologies Used

  • JavaScript
  • TypeScript
  • Angular2
  • Node
  • Bower
  • Bootstrap
  • Firebase
  • Jasmine and Karma

Support and contact details

If you have any updates, questions, or suggestions please contact Margaret or make a contribution.

License

MIT License

Copyright (c) 2017 Margaret Berry

personal_reflection_project's People

Contributors

codemargaret avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.