Skip to content

fanbotme/development-proccess

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 

Repository files navigation

fanbot.me Development Process & Technical Design

Development Process

This document provides guidance and template material intended to help technical staff team, it is also useful background reading for anyone involved on the development process of our current product, this document will assume you know a thing or two about Lean and/or SCRUM, The less lengthy your sprints are, the faster you can course correct.

"Sprints are like flights; shorter = better."

Stay lean, build less, you should keep your development process as lean as possible meaning, The more you and your people know, the more you can do in a smaller number of people for smaller amount of money.

Development Process Principles

  1. Agile Development

    1. Features

    2. Stories

    3. Task

  2. Code Peer Review

    1. Early debugging

    2. The code stays here

    3. Developers learn from each others

    4. Teamwork

  3. Time Tracking

  4. Stage Environment

    1. Development

    2. Staging

    3. Production

  5. Straight-line Communication

  6. Weekly Reports

  7. Progress Tracking

  8. Maintenance & Support

Development tools and process

Source Control

Our source control tool for our development process will be Github so we assume you know git, we will use release automation, and we will set up environments so we can regularly release updates, the benefits of a release process is that it forces us to think in terms of "shipping" this will help us to start planning to releasing stables versions of our application every one or two sprints depending on our development process. So the main goal is release the update of our product with a single command.

Four our branching model will be using GitFlow is suited to collaboration and scaling the development team, for more information visit this link. Git Flow Cheatsheet

Automated Testing

Mostly of our code will be writing in javascript for automation testing in javascript will be using Phantom.js this framework is mostly used for front-end testing is easy to run from a command line so it integrates nicely in our CI system, for our server-side code will be using

Mocha.js

Bug and issue Tracking

For bug and issue tracking will be using a trello board with the following structure:

  1. Reported by team

  2. Reported by clients

  3. Accepted

  4. In Progress

  5. To be validated

  6. Done

Continuous Integration

Unit tests only help if you’re running them. we have a Drone.io server to watch and test our code, Drone is a lightweight, powerful continuous delivery system built on container technology, drone uses a simple yaml configuration file, a superset of docker -compose to defines and execute pipelines inside Docker containers.

Code Reviews and code Quality

We want to make sure that our team members reviews each other’s code this has several significant benefits. First and foremost, it ensures that you’re shipping higher quality code. Second, it serves as an amazing educational opportunity for team members, so for this will be using our source control version Github using the feature of pull request to make code reviews in our development team once every member of the team review the pull request this can be merged on the requested branch

Release Management and Environments

Release management include our CI environment and our scripts for releasing new code, so we have multiples environments for that staging and production, a staging environment serves two major purposes. First, it creates a shared environment where our members can test their code against consistent representation of your application; this give us a predictable a reliable version of your application that helps to decrease the "works for me" problem, Second, it creates a production-like environment for testing and features that may work slightly differently in a production or staging setting than they would on local development environment — this helps us detect any issues that might not otherwise be visible until you’ve released your code into production.

Complete Process.

Our Development Stack

We will separate our development stack in 4 categories.

  1. Application and Data

  2. Utilities

  3. DevOps

  4. Business Tools

Application and Data

  1. Languages
  • Javascript

  • Php

  • Go

  • Python

Frameworks

  • React

  • Node.js

  • Mocha

  • PhantomJS

  • Cloud Hosting & Storage

  • AWS

  • Digital Ocean

Databases

  • MySQL

  • PostgreSQL

  • Mongodb

  • Redis (In-Memory Database)

Utilities

  • Paypal

  • Stripe

  • Messenger Platform

  • Api.ai

  • Google Analytics

DevOps

  • Github & git

  • Docker

  • Webpack

  • Drone.io

  • Sentry

Business Tools

  • G Suite

  • Slack

  • Trello

  • Zendesk

  • Intercom

  • InVision

  • Zoho CRM

Javascript Style Guide

ChatBots

Chatbots are on the rise. Startups are building chatbots like us in fanbot we’ve been working on chatbots for a while, and we’ve been looking on what is going on in the industry.

  • Tools
  1. flowxo

  2. Messenger

  3. Api.ai

  4. Init

  • Books
  1. Bot Business 101: How to start, run & grow your Bot / AI

  2. Designing Bots: Creating Conversational Experiences

  3. Conversational Interfaces: Principles of Successful Bots, Chatbots, Messaging Apps, and Voice Experiences

  4. Business of Bots: How To Grow Your Company Through Conversation

  • Blogs:
  1. ChatBot Architecture

  2. Natural Language Pipeline for Chatbots

  3. Character-Level Convolutional Networks

  4. Deep Learning for Chatbots

  5. Architecture Of Probot

  6. Chatbots work guide architecture

  7. Conversational UX Design. All Facebook Messenger Bots Interactions

References.

Development Process

Releases

No releases published

Packages

No packages published