(amos-ws18-proj3)
Pretrendr is an open source project to predict technology trends out of open data sources. It is a web-based solution to extract trend data out of the worlds broadcast, print and web news and predict if it will become a trend.
Pretrendr simplifies the identification of existing and emerging trends that reshape industries. News are linked and refined to evaluate trends in order to deliver accurate results. We provide an easy-to-use webpage where trends can be monitored and identified.
For meeting checklist click here
Pretrendr consists of five components:
- Frontend (main focus: user interface for the prediction and evaluation of trends)
- Backend (main focus: simplifies the communication between frontend and EMR; saves intermediate results)
- Database for user and trend management
- EMR (main focus: analyse common crawl data based on specifying settings)
- Common Crawl (data source)
The following picture shows the interaction between the five components:
The system consits of three stages (hosting via AWS):
- Production / live stage
- Based on master branch (see section: Continuous Integration)
- Prod-Server 1: 18.216.122.218
- Backend
- S3-Bucket 1: pretrendr.com
- Frontend
- Test / staging stage
- Based on developer branch (see section: Continuous Integration)
- Test-Server 1: 18.216.129.153
- Backend
- S3-Bucket 1: staging.pretrendr.com
- Frontend
- Local Machine based on new feature branch
To achieve continuous integration we set up circleci which checks firstly the build process and the JUnit tests for backend and also for frontend. If the tests are successfully proceeded and we want to merge the new git version either into master branch or develop branch, circleci will deploy the products (frontend, backend) to the following systems:
- Production / live stage based on git branch master
- Backend will be deployed to the EC2 instance 18.216.122.218
- Frontend will be deployed to the S3 bucket http://pretrendrfrontend.s3-website.us-east-2.amazonaws.com
- Test / Staging stage based on git branch develop
- Backend will be deployed to the EC2 instance 18.216.129.153
- Frontend will be deployed to the S3 bucket http://pretrendrfrontendstaging.s3-website.us-east-2.amazonaws.com
Circleci log: https://circleci.com/gh/Astarch/amos-ws18-proj3
Feature Freeze: Wednesday 23:59!
Meaning: No more merging of branches onto the develop
branch from pull requests until the release manager created the new release branch and pushed it!.
We will use a variation of git-flow to ensure we always have a working version and minimize merge conflicts. Most important are the develop
and the master
branch.
The master
branch always contains a release-ready version and is also the branch where release-tags are being made (only by the release manager!). PLEASE DON'T TOUCH THIS BRANCH OTHER THAN FOR RELEASES!!!
The develop
branch is the branch where all of the development will happen and where releases are scheduled from.
To start developing a new feature please follow the next steps:
- Start a new branch from the
develop
branch namedfeature/x-y-z
where x-y-z is the feature name - Develop feature
- Merge
develop
intofeature
- Start a pull request on github (make sure to set develop as branch to merge into later!) and add atleast one reviewer!
- When pull request is accepted merge
feature
intodevelop
and deletefeature
branch
- Start a new branch from
develop
namedrelease/sprint-release-xyz
where xyz is the release version - Fix Bugs etc, ensure everything is working!
- Merge
release
intomaster
and back intodevelop
if bugfixes have been made - Delete
release
branch - Tag
master
as release on github!