You can call us, Ed.
The unique and specific focus of our work is “Network-Building”. The Birmingham Education Foundation (Ed) is dedicated to increasing the number of students in the Birmingham City Schools that are on the path to college, career, and life readiness. We believe that this is only possible by cultivating a diverse network of people who demand excellence for our students and inspire others to do the same. We believe Network members are:
- Committed to deliberate actions that demonstrate their belief in and love for our students; and
- Intentionally connected through a set of relationships, taking advantage of opportunities to act together, and exchanging value between individuals and groups.
To actively cultivate the Network, we provide direct programming for students and fun and interactive opportunities for Network members to build new relationships and strengthen existing ones. We serve as Connectors among five different stakeholder groups – students, educators, families, local residents, and community partners– bringing them together to create a new operating culture that sparks organic and objective-driven visions to increase student preparedness for college, career, and life.
In order to reach our Network membership and action goals it is imperative that we maintain organization of our data, communication, and progress. The Network Asset Database, aka edbirmingham/network, is being developed to increase Ed’s Network activity; maintaining Membership records, supporting stewardship (progress to requests/offers between Network members), and increasing access and awareness to school/community based assets.
Network is 100% free and open-source. We encourage and support an active, healthy community that accepts contributions from the public – including you! To maximize openness we operate according to the Collective Code Construction Contract
- Questions? Visit our room.
- Not sure what to work on? Check out the issues at waffle. When beginning work on an issue, please move it to the waffle "In Progress" column if you are a maintainer. Otherwise, comment on the issue indicating that you are working on it.
- Wondering how to setup a development environment? See the Super Easy, Not Too Difficult and Really Difficult setup instructions below.
- Want to learn about the technology being used? See the Built with MEAN.JS section below.
- Please use the Official Yo Generator when adding functionality.
- Code style for CSS and Javascript is enforced by the automated lint tools CSSlint and JShint respectively. Execute
grunt lint
to ensure code conforms to project coding style.
This setup uses Cloud9 for your development environment. Cloud9 provides an online development environment and server for you to use. All you need is a browser and good internet connection. Everything else is available on Cloud9's site.
-
Create a Github account
-
Fork Network
- Scroll to the top of this page and click "fork" in the top right corner.
-
Setup Cloud9
- Signup for Cloud9 IDE with your Github Account
- Goto the Repositories link in Cloud9 IDE
- Select "Clone to edit" on your fork of Network.
- Note, you may see two options for Network. One is "edbirmingham/network", which you do not want to select. The other is "your name/network" which is the correct repository to select.
- Cloud9 will soon display the development environment.
- In the bash tab (bottom of the screen), setup a git remote to the main project:
git remote add upstream https://github.com/edbirmingham/network.git
- In the bash tab, install Node.js modules by entering the following command:
nvm use v0.10 npm install
Note: If the command fails, you can restart the workspace by clicking in the top right corner where it says "Memory, CPU, and Disk". Then click restart in that menu.
- In the bash tab, start up MongoDb and the application by entering the following command:
./startup
- To view the app in the browser, select Preview from the editor menu and then select Preview Running Application. This will open the application in a tab of the editor. Log into the application with username
janedoe
and passwordpassword
.
-
Hack away
-
Send lots of pull requests!!
-
In order to get updates from the main project use the following command in the bash tab:
git pull upstream master
This setup uses Vagrant to create a virtual machine for the development environment. The virtual machine runs on your computer. Therefore you will need a good computer with plenty of memory and hard-disk space. The virtual machine keeps all the development safely isolated to avoid conflicts with other stuff on your computer.
- Create a Github account
- Fork Network
- Install VirtualBox
- Install Vagrant
- Clone your forked Network repo
git clone [email protected]:<your-github-id>/network.git
- Change to the directory containing Network
- If librarian-chef is not installed:
gem install librarian-chef
- Download the Chef cookbooks
librarian-chef install
- Start Vagrant virtual machine
vagrant up
- SSH into the Vagrant virtual machine
vagrant ssh
- Create a development user. The username is
janedoe
and the password ispassword
.
grunt initdb
- Run the application
grunt
- Open the application in your browser
http://localhost:3000
- Read documentation about Official Yo Generator for MEAN
- Hack away
- Send lots of pull requests!!
This setup is for those who want complete control of their development environment, love wrestling with install scripts and who refer to dependency resolution as "Dependency Heaven".
- Look at the Vagrantfile and install all that stuff. Good luck. :)
Network is built on the MEAN.JS stack. It is Javascript all the way down folks. If you are unfamiliar with this stack or any of its individual parts, there are documentation links below.
MEAN.JS is a full-stack JavaScript open-source solution, which provides a solid starting point for MongoDB, Node.js, Express, and AngularJS based applications. The idea is to solve the common issues with connecting those frameworks, build a robust framework to support daily development needs, and help developers use better practices while working with popular JavaScript components.
Before you begin we recommend you be familiar with the basic building blocks that assemble a MEAN.JS application:
- MongoDB - Go through MongoDB Official Website and proceed to their Official Manual, which should help you understand NoSQL and MongoDB better.
- Express - The best way to understand express is through its Official Website, which has a Getting Started guide, as well as an ExpressJS Guide guide for general Express topics. You can also go through this StackOverflow Thread for more resources.
- AngularJS - Angular's Official Website is a great starting point. You can also use Thinkster Popular Guide, and the Egghead Videos.
- Node.js - Start by going through Node.js Official Website and this StackOverflow Thread, which should get you going with the Node.js platform in no time.
There is a lot to understand, we recommend you go over the Official Documentation. The docs explain both general concepts of MEAN components and give some guidelines to help improve the development process.
- Use the Offical Website to learn about changes and the roadmap.
- Join #meanjs on freenode.
- Discuss it in the Google Group
- Ping them on Twitter and Facebook