4 |
5 | @{
6 | ViewBag.Title = "Home Page";
7 | }
8 |
9 |
10 |
11 | @foreach(Establishment p in Model)
12 | {
13 | Html.RenderPartial("_EstablishmentSummary", p);
14 | }
15 |
16 |
--------------------------------------------------------------------------------
/POS/Views/Home/_EstablishmentSummary.cshtml:
--------------------------------------------------------------------------------
1 | @model POS.Domain.Model.Establishment
2 |
3 |
4 |
@Model.Name
5 | @Html.ActionLink(Model.Name ,"Establishment", new { id = Model.EstablishmentId })
6 |
--------------------------------------------------------------------------------
/POS/Views/Membership/ChangePassword.cshtml:
--------------------------------------------------------------------------------
1 | @model POS.Models.ChangePasswordModel
2 |
3 | @{
4 | ViewBag.Title = "Change Password";
5 | }
6 |
7 | Change Password
8 |
9 | Use the form below to change your password.
10 |
11 |
12 | New passwords are required to be a minimum of @Membership.MinRequiredPasswordLength characters in length.
13 |
14 |
15 |
16 |
17 |
18 | @using (Html.BeginForm()) {
19 | @Html.ValidationSummary(true, "Password change was unsuccessful. Please correct the errors and try again.")
20 |
21 |
52 |
53 | }
54 |
--------------------------------------------------------------------------------
/POS/Views/Membership/ChangePasswordSuccess.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewBag.Title = "Change Password";
3 | }
4 |
5 | Change Password
6 |
7 | Your password has been changed successfully.
8 |
9 |
--------------------------------------------------------------------------------
/POS/Views/Membership/LogOn.cshtml:
--------------------------------------------------------------------------------
1 | @model POS.Models.LogOnModel
2 |
3 | @{
4 | ViewBag.Title = "Log On";
5 | }
6 |
7 | Log On
8 |
9 | Please enter your user name and password. @Html.ActionLink("Register", "Register") if you don't have an account.
10 |
11 |
12 |
13 |
14 |
15 | @Html.ValidationSummary(true, "Login was unsuccessful. Please correct the errors and try again.")
16 |
17 | @using (Html.BeginForm()) {
18 |
19 |
47 |
48 | }
49 |
--------------------------------------------------------------------------------
/POS/Views/Membership/Register.cshtml:
--------------------------------------------------------------------------------
1 | @model POS.Models.RegisterModel
2 |
3 | @{
4 | ViewBag.Title = "Register";
5 | }
6 |
7 | Create a New Account
8 |
9 | Use the form below to create a new account.
10 |
11 |
12 | Passwords are required to be a minimum of @Membership.MinRequiredPasswordLength characters in length.
13 |
14 |
15 |
16 |
17 |
18 | @using (Html.BeginForm()) {
19 | @Html.ValidationSummary(true, "Account creation was unsuccessful. Please correct the errors and try again.")
20 |
21 |
60 |
61 | }
62 |
--------------------------------------------------------------------------------
/POS/Views/OrderDetails/Create.cshtml:
--------------------------------------------------------------------------------
1 | @model POS.Domain.Model.OrderDetail
2 |
3 | @{
4 | ViewBag.Title = "Create";
5 | }
6 |
7 | Create
8 |
9 |
10 |
11 |
12 | @using (Html.BeginForm()) {
13 | @Html.ValidationSummary(true)
14 |
53 | }
54 |
55 |
56 | @Html.ActionLink("Back to List", "Index")
57 |
58 |
--------------------------------------------------------------------------------
/POS/Views/OrderDetails/DeeperLook.cshtml:
--------------------------------------------------------------------------------
1 | @using POS.Models
2 | @using Telerik.Web.Mvc.UI
3 | @model IEnumerable
4 | @{
5 | ViewBag.Title = "Deeper Look";
6 | }
7 |
8 | Deeper Look
9 | @(Html.Telerik().Grid()
10 | .Name("Stats")
11 | .Columns(columns =>
12 | {
13 | columns.Bound(o => o.Stat).Width(100);
14 | columns.Bound(o => o.Average).Width(75).Format("{0:C}");
15 | columns.Bound(o => o.Median).Width(75).Format("{0:C}");
16 | })
17 | .ClientEvents(events => events.OnRowDataBound("hourly_onRowDataBound"))
18 | .DetailView(details => details.ClientTemplate(
19 | Html.Telerik().Grid()
20 | .Name("DeeperStat_<#= DeeperLookViewModelId #>")
21 | .Columns(columns =>
22 | {
23 | columns.Bound(o => o.Stat).Width(90);
24 | columns.Bound(o => o.Average).Width(75).Format("{0:C}");
25 | columns.Bound(o => o.Median).Width(75).Format("{0:C}");
26 | })
27 | .DataBinding(dataBinding => dataBinding.Ajax().Select("_DeeperStat", "OrderDetails", new { id = "<#= DeeperLookViewModelId #>" }))
28 | .Sortable()
29 | .Scrollable(scrolling => scrolling.Height("auto"))
30 | .Scrollable(scrolling => scrolling.Enabled(false))
31 | .Filterable()
32 | .ToHtmlString()
33 | ))
34 | .DataBinding(dataBinding => dataBinding.Ajax().Select("_DeeperLook", "OrderDetails").Enabled((bool)ViewData["ajax"]))
35 | .Pageable(paging => paging.PageSize(5))
36 | .Scrollable(scrolling => scrolling.Height("auto"))
37 | .Scrollable(scrolling => scrolling.Enabled(false))
38 | .Sortable()
39 | )
40 |
41 |
42 |
--------------------------------------------------------------------------------
/POS/Views/OrderDetails/DeeperLook2.cshtml:
--------------------------------------------------------------------------------
1 | @using POS.Models
2 | @using Telerik.Web.Mvc.UI
3 | @model IEnumerable
4 | @{
5 | ViewBag.Title = "Deeper Look";
6 | }
7 |
8 | Deeper Look
9 | @(Html.Telerik().Grid()
10 | .Name("Stat")
11 | .Columns(columns =>
12 | {
13 | columns.Bound(o => o.Stat).Width(100);
14 | columns.Bound(o => o.Average).Width(75);
15 | columns.Bound(o => o.Median).Width(75);
16 | })
17 | .ClientEvents(events => events.OnRowDataBound("hourly_onRowDataBound"))
18 | .DetailView(details => details.ClientTemplate(
19 | Html.Telerik().Grid()
20 | .Name("Stat_<#= DeeperLookViewModelId #>")
21 | .Columns(columns =>
22 | {
23 | columns.Bound(o => o.Stat).Width(1000);
24 | columns.Bound(o => o.Average).Width(75);
25 | columns.Bound(o => o.Median).Width(75);
26 | })
27 | .ClientEvents(events => events.OnRowDataBound("deeperStats_onRowDataBound"))
28 | .DetailView(ordersDetailView => ordersDetailView.ClientTemplate(
29 | Html.Telerik().Grid()
30 | .Name("Stat2_<#= DeeperLookViewModelId #>")
31 | .Columns(columns =>
32 | {
33 | columns.Bound(o2 => o2.Stat).Width(90);
34 | columns.Bound(o2 => o2.Average).Width(75);
35 | columns.Bound(o2 => o2.Median).Width(75);
36 | })
37 | .DataBinding(dataBinding => dataBinding.Ajax().Select("_GrossRevHourly", "OrderDetails"))
38 | .Pageable()
39 | .Sortable()
40 | .ToHtmlString()
41 | ))
42 | .DataBinding(dataBinding => dataBinding.Ajax()
43 | .Select("_OrdersForEmployeeHierarchyAjax", "Grid", new { employeeID = "<#= EmployeeID #>" }))
44 | .Pageable()
45 | .Sortable()
46 | .Filterable()
47 | .ToHtmlString()
48 | ))
49 | .DataBinding(dataBinding => dataBinding.Ajax().Select("_DeeperLook", "OrderDetails"))
50 | .Pageable(paging => paging.PageSize(5))
51 | .Scrollable(scrolling => scrolling.Height(580))
52 | .Sortable()
53 | )
54 |
55 |
56 |
--------------------------------------------------------------------------------
/POS/Views/OrderDetails/Delete.cshtml:
--------------------------------------------------------------------------------
1 | @model POS.Domain.Model.OrderDetail
2 |
3 | @{
4 | ViewBag.Title = "Delete";
5 | }
6 |
7 | Delete
8 |
9 | Are you sure you want to delete this?
10 |
33 | @using (Html.BeginForm()) {
34 |
35 | |
36 | @Html.ActionLink("Back to List", "Index")
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/POS/Views/OrderDetails/Details.cshtml:
--------------------------------------------------------------------------------
1 | @model POS.Domain.Model.OrderDetail
2 |
3 | @{
4 | ViewBag.Title = "Details";
5 | }
6 |
7 | Details
8 |
9 |
32 |
33 | @Html.ActionLink("Edit", "Edit", new { id=Model.OrderDetailId }) |
34 | @Html.ActionLink("Back to List", "Index")
35 |
36 |
--------------------------------------------------------------------------------
/POS/Views/OrderDetails/Edit.cshtml:
--------------------------------------------------------------------------------
1 | @model POS.Domain.Model.OrderDetail
2 |
3 | @{
4 | ViewBag.Title = "Edit";
5 | }
6 |
7 | Edit
8 |
9 |
10 |
11 |
12 | @using (Html.BeginForm()) {
13 | @Html.ValidationSummary(true)
14 |
55 | }
56 |
57 |
58 | @Html.ActionLink("Back to List", "Index")
59 |
60 |
--------------------------------------------------------------------------------
/POS/Views/OrderDetails/EstablishmentSalesReport.cshtml:
--------------------------------------------------------------------------------
1 | @using Telerik.Web.Mvc.UI
2 | @model IEnumerable
3 | @{
4 | ViewBag.Title = "Establishment Sales Report";
5 | }
6 |
7 | FirstLook
8 | @(Html.Telerik().Grid(Model)
9 | .Name("Grid")
10 | .Scrollable(scrolling => scrolling.Height("auto"))
11 | .Columns(columns =>
12 | {
13 | columns.Bound(o => o.OrderId).Width(75);
14 | columns.Bound(o => o.ProductName).Width(100);
15 | columns.Bound(o => o.Price).Width(75);
16 | columns.Bound(o => o.ProductQuantity).Width(75);
17 | columns.Bound(o => o.TotalLineCost).Width(75)
18 | .Aggregate(aggregates => aggregates.Sum())
19 | .Format("{0:c}")
20 | .FooterTemplate(@Transaction Total: @item.Sum.Format("{0:c}"))
21 | .GroupFooterTemplate(@Transaction Total: @item.Sum.Format("{0:c}"))
22 | .ClientFooterTemplate("Transaction Total: <#= $.telerik.formatString('{0:c}', Sum) #>")
23 | .ClientGroupFooterTemplate("Transaction Total: <#= $.telerik.formatString('{0:c}', Sum) #>");
24 | columns.Bound(o => o.EstablishmentName).Width(100);
25 |
26 | })
27 | .DataBinding(dataBinding =>
28 | {
29 | dataBinding.Server().Select("EstablishmentSalesReport", "OrderDetails", new { ajax = ViewData["ajax"] });
30 | dataBinding.Ajax().Select("_EstablishmentSalesReport", "OrderDetails").Enabled((bool)ViewData["ajax"]);
31 | })
32 | .Scrollable(scrolling => scrolling.Enabled((bool)ViewData["scrolling"]))
33 | .Sortable(sorting => sorting.Enabled((bool)ViewData["sorting"]))
34 | .Pageable(paging => paging.Enabled((bool)ViewData["paging"]))
35 | .Filterable(filtering => filtering.Enabled((bool)ViewData["filtering"]))
36 | .Groupable(grouping => grouping.Enabled((bool)ViewData["grouping"]))
37 | .Footer((bool)ViewData["showFooter"])
38 | .Groupable(settings => settings.Groups(groups => groups.Add(o => o.OrderId)).Visible(true))
39 | )
--------------------------------------------------------------------------------
/POS/Views/OrderDetails/FullOrders.cshtml:
--------------------------------------------------------------------------------
1 | @model IEnumerable
2 |
3 | @{
4 | ViewBag.Title = "title";
5 | }
6 |
7 | Orders
8 |
9 |
10 |
11 |
12 | Order Number:
13 | |
14 |
15 | Sold At:
16 | |
17 | |
18 |
19 | @foreach (var item in Model)
20 | {
21 |
22 |
23 | Order #: @this.Html.DisplayFor(modelItem => item.OrderId)
24 | |
25 |
26 | Location: @Html.DisplayFor(modelItem => item.Establishment.Name)
27 | |
28 |
29 | if (item.OrderDetails != null)
30 | {
31 | foreach (var subItem in item.OrderDetails)
32 | {
33 |
34 |
35 | Quantity: @this.Html.DisplayFor(modelItem => subItem.Quantity)
36 | |
37 |
38 | Name: @this.Html.DisplayFor(modelItem => subItem.ProductName)
39 | |
40 |
41 | Price per Product: @this.Html.DisplayFor(modelItem => subItem.UnitPrice)
42 | |
43 |
44 | }
45 | }
46 | }
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/POS/Views/OrderDetails/Index.cshtml:
--------------------------------------------------------------------------------
1 | @model IEnumerable
2 |
3 | @{
4 | ViewBag.Title = "Index";
5 | }
6 |
7 | Index
8 |
9 |
10 | @Html.ActionLink("Create New", "Create")
11 |
12 | Navigate to /OrderDetails/EstablishmentSalesReport/id where id is = the id of the Esablishment who's sales report you would like to see.
13 |
14 |
15 |
16 | Order
17 | |
18 |
19 | Quantity
20 | |
21 |
22 | ProductName
23 | |
24 |
25 | UnitPrice
26 | |
27 | |
28 |
29 |
30 | @foreach (var item in Model) {
31 |
32 |
33 | @Html.DisplayFor(modelItem => item.Order.OrderId)
34 | |
35 |
36 | @Html.DisplayFor(modelItem => item.Quantity)
37 | |
38 |
39 | @Html.DisplayFor(modelItem => item.ProductName)
40 | |
41 |
42 | @Html.DisplayFor(modelItem => item.UnitPrice)
43 | |
44 |
45 | @Html.ActionLink("Edit", "Edit", new { id=item.OrderDetailId }) |
46 | @Html.ActionLink("Details", "Details", new { id=item.OrderDetailId }) |
47 | @Html.ActionLink("Delete", "Delete", new { id=item.OrderDetailId })
48 | |
49 |
50 | }
51 |
52 |
53 |
54 | @{
55 |
56 | var grid = new WebGrid(Model, defaultSort:"Name");
57 |
58 | }
59 |
60 | @grid.GetHtml()
--------------------------------------------------------------------------------
/POS/Views/OrderDetails/Master.cshtml:
--------------------------------------------------------------------------------
1 | @using Telerik.Web.Mvc.UI
2 | @model IEnumerable
3 | @{
4 | ViewBag.Title = "Master";
5 | }
6 |
7 | FirstLook
8 | @(Html.Telerik().Grid(Model)
9 | .Name("Grid")
10 | .Scrollable(scrolling => scrolling.Height("auto"))
11 | .Columns(columns =>
12 | {
13 | columns.Bound(o => o.OrderId).Width(75).Visible(false);
14 | columns.Bound(o => o.ProductName).Width(100);
15 | columns.Bound(o => o.Price).Width(75);
16 | columns.Bound(o => o.TotalLineCost).Width(75);
17 | columns.Bound(o => o.ProductQuantity).Width(75);
18 | columns.Bound(o => o.EstablishmentName).Width(100);
19 | columns.Bound(o => o.TimeProcessed).Width(75);
20 | columns.Bound(o => o.CustomerName).Width(100);
21 | columns.Bound(o => o.LineItemPromo).Width(100);
22 | columns.Bound(o => o.TotalLineCostAfterPromo).Width(75)
23 | .Aggregate(aggregates => aggregates.Sum())
24 | .Format("{0:c}")
25 | .FooterTemplate(@Total Sum: @item.Sum.Format("{0:c}"))
26 | .GroupFooterTemplate(@Total Sum: @item.Sum.Format("{0:c}"))
27 | .ClientFooterTemplate("Total Sum: <#= $.telerik.formatString('{0:c}', Sum) #>")
28 | .ClientGroupFooterTemplate("Sum: <#= $.telerik.formatString('{0:c}', Sum) #>");
29 | columns.Bound(o => o.TotalCostOfOrder).Width(75);
30 |
31 | })
32 | .DataBinding(dataBinding =>
33 | {
34 | dataBinding.Server().Select("Master", "OrderDetails", new { ajax = ViewData["ajax"] });
35 | dataBinding.Ajax().Select("_Master", "OrderDetails").Enabled((bool)ViewData["ajax"]);
36 | })
37 | .Scrollable(scrolling => scrolling.Enabled((bool)ViewData["scrolling"]))
38 | .Sortable(sorting => sorting.Enabled((bool)ViewData["sorting"]))
39 | .Pageable(paging => paging.Enabled((bool)ViewData["paging"]))
40 | .Filterable(filtering => filtering.Enabled((bool)ViewData["filtering"]))
41 | .Groupable(grouping => grouping.Enabled((bool)ViewData["grouping"]))
42 | .Footer((bool)ViewData["showFooter"])
43 | .Groupable(settings => settings.Groups(groups => groups.Add(o => o.OrderId)).Visible(true))
44 | )
--------------------------------------------------------------------------------
/POS/Views/Product/Categories.cshtml:
--------------------------------------------------------------------------------
1 | @model IEnumerable
2 |
3 | @{
4 | ViewBag.Title = "Categories";
5 | }
6 |
7 | @foreach (var p in Model) {
8 |
9 | @p.CategoryId
10 |
@p.Name
11 | }
12 |
--------------------------------------------------------------------------------
/POS/Views/Product/CategoryList.cshtml:
--------------------------------------------------------------------------------
1 | @model IEnumerable
2 |
3 | @foreach (var p in Model)
4 | {
5 | Html.RenderPartial("_CategorySummary", p);
6 | }
--------------------------------------------------------------------------------
/POS/Views/Product/List.cshtml:
--------------------------------------------------------------------------------
1 | @using POS.Domain.Model
2 | @model IQueryable
3 |
4 | @{
5 | ViewBag.Title = "List";
6 | }
7 |
8 | @foreach (Category p in Model)
9 | {
10 | Html.RenderPartial("_CategorySummary", p);
11 | }
12 |
13 |
--------------------------------------------------------------------------------
/POS/Views/Product/ProductList.cshtml:
--------------------------------------------------------------------------------
1 | @model IEnumerable
2 |
3 | @foreach (var p in Model)
4 | {
5 | Html.RenderPartial("_ProductSummary", p);
6 | }
--------------------------------------------------------------------------------
/POS/Views/Product/_CategorySummary.cshtml:
--------------------------------------------------------------------------------
1 | @model POS.Domain.Model.Category
2 |
3 |
4 |
@Model.Name
5 |
6 |
7 |
--------------------------------------------------------------------------------
/POS/Views/Product/_ParentCategorySummary.cshtml:
--------------------------------------------------------------------------------
1 | @model POS.Domain.Model.ParentCategory
2 |
3 |
4 |
@Model.Name
5 |
6 |
7 |
--------------------------------------------------------------------------------
/POS/Views/Product/_ProductSummary.cshtml:
--------------------------------------------------------------------------------
1 | @model POS.Domain.Model.Product
2 |
3 |
4 |
@Model.Name
5 | @if (Model.ImageData != null)
6 | {
7 |
8 |

9 |
10 | }
11 |
@Model.Description
12 |
13 | @using(Html.BeginForm("AddToCart", "Cart")) {
14 | @Html.HiddenFor(x => x.ProductId)
15 | @Html.Hidden("returnUrl", Request.Url.PathAndQuery)
16 |
17 | }
18 |
19 |
@Model.Price.ToString("c")
20 |
21 |
22 |
--------------------------------------------------------------------------------
/POS/Views/ServerReport/Index.cshtml:
--------------------------------------------------------------------------------
1 | @model POS.Models.ServerReportIndexViewModel
2 |
3 | @{
4 | ViewBag.Title = "Index";
5 | }
6 |
7 | Index
8 |
9 |
10 | @Html.ActionLink("Create New", "Create")
11 |
12 |
13 |
14 |
15 | EstablishmentId
16 | |
17 |
18 | ServerTip
19 | |
20 |
21 | TotalCost
22 | |
23 |
24 | SalesTax
25 | |
26 |
27 | TimeProcessed
28 | |
29 |
30 | CustomerName
31 | |
32 |
33 | ServerId
34 | |
35 | |
36 |
37 |
38 | @foreach (var item in Model) {
39 |
40 |
41 | @Html.DisplayFor(modelItem => item.EstablishmentId)
42 | |
43 |
44 | @Html.DisplayFor(modelItem => item.ServerTip)
45 | |
46 |
47 | @Html.DisplayFor(modelItem => item.TotalCost)
48 | |
49 |
50 | @Html.DisplayFor(modelItem => item.SalesTax)
51 | |
52 |
53 | @Html.DisplayFor(modelItem => item.TimeProcessed)
54 | |
55 |
56 | @Html.DisplayFor(modelItem => item.CustomerName)
57 | |
58 |
59 | @Html.DisplayFor(modelItem => item.ServerId)
60 | |
61 |
62 | @Html.ActionLink("Edit", "Edit", new { id=item.OrderId }) |
63 | @Html.ActionLink("Details", "Details", new { id=item.OrderId }) |
64 | @Html.ActionLink("Delete", "Delete", new { id=item.OrderId })
65 | |
66 |
67 | }
68 |
69 |
70 |
--------------------------------------------------------------------------------
/POS/Views/Shared/Error.cshtml:
--------------------------------------------------------------------------------
1 | @model System.Web.Mvc.HandleErrorInfo
2 |
3 | @{
4 | ViewBag.Title = "Error";
5 | }
6 |
7 |
8 | Sorry, an error occurred while processing your request.
9 |
10 |
--------------------------------------------------------------------------------
/POS/Views/Shared/_AdminLayout.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | @ViewBag.Title
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | @if (TempData["message"] != null)
14 | {
15 |
@TempData["message"]
16 | }
17 | @RenderBody()
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/POS/Views/Shared/_LogOnPartial.cshtml:
--------------------------------------------------------------------------------
1 | @if(Request.IsAuthenticated) {
2 | Welcome @User.Identity.Name!
3 | [ @Html.ActionLink("Log Off", "LogOff", "Account") ]
4 | }
5 | else {
6 | @:[ @Html.ActionLink("Log On", "LogOn", "Account") ]
7 | }
8 |
--------------------------------------------------------------------------------
/POS/Views/Web.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
39 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/POS/Views/_ViewStart.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | Layout = "~/Views/Shared/_Layout.cshtml";
3 |
4 | }
--------------------------------------------------------------------------------
/POS/Web.Debug.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
17 |
18 |
29 |
30 |
--------------------------------------------------------------------------------
/POS/Web.Release.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
17 |
18 |
19 |
30 |
31 |
--------------------------------------------------------------------------------
/POS/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | POS Read Me
2 | =============
3 | contact: ecnalyr@gmail.com
4 |
5 | Build Instructions
6 | ------------------
7 | 1. Open in Visual Studio 2010
8 | 2. Build POS.Infrastructure
9 | 3. Build Pos
10 | 4. You are finished.
11 |
12 | Contributing
13 | ------------
14 |
15 | 1. Fork it.
16 | 2. Create a branch (`git checkout -b my_changes`)
17 | 3. Commit your changes (`git commit -am "Added these features"`)
18 | 4. Push to the branch (`git push origin my_changes`)
19 | 5. Open a [Pull Request][1]
20 | 6. Wait for your Pull Request to be reviewed by Ecnalyr.
21 |
22 |
23 | [1]: http://github.com/github/pos/pulls
--------------------------------------------------------------------------------