/
Stack architecture

Stack architecture

Options

Layer

Framework

Notes

Current team member knowledge of frameworks

Difficulty of frameworks to learn

How well the framework is documented

Availability / pricing of platforms

Layer

Framework

Notes

Current team member knowledge of frameworks

Difficulty of frameworks to learn

How well the framework is documented

Availability / pricing of platforms

Deployment

Heroku

Not customizable

Slow

Joshua has published an flask server to it before.

Easy to setup and link to github for continuous deployment

Some documentation and more intuitive

Free option without use of credit card.

Deployment

AWS

Scales better and faster

Joshua has attempted to use and failed…

More complicated to setup

Well documented though some can be fragmented.

Can be free however credit card required and can’t stop charge if API overused.

Deployment

Azure

Scales better and faster.

No experience.

More complicated to setup

Has documentation though often aimed at more experienced uses.

No free option for needed services.

Deployment

AlwaysData

Small scale server operator similar to AWS, Azure

Used in comp1531 however no other use.

Fairly simple however large learning curve.

Lacking documentation as less used service and documentation that does exist is often hard to understand.

Free option without credit card that we can use.

Deployment

Personal Host

Space!

Honestly just. No

Joshua and Edward have basic understanding

For simple server relatively easy

Lots of guides for setup.

Power and wear on equipment.

Application

Python

Slow

Lots of libraries

Flexible

Group members have used before

Easy language to pickup and use

Very well documented

Can connect to many things

Lots of libraries

Free

Server/ API

Flask

Runs on top of python. Well supported with deployment methods

Group familiar

Easy to pickup for simple solutions. Can get more complicated for harder tasks.

Well documents. Lots of use so many common issues have solutions.

Free

Server/ API

Django

Runs on top of python. Well supported with deployment methods

Group unfamiliar

Easy to pickup. Similar to flask though considered slightly easier to understand basics of.

Commonly used in industry with lots of formal and informal documentation

Free

Persistance layer

SQLite + sqlalchemy

Runs local SQL sever

Joshua has used before. Runs on python which group is familiar with.

Some learning curve however after initial setup is very easy to use.

Well documented however often have alternate use cases.

Free

Final choices

Deployment method

We have decided to use Heroku as it should give a simple and stable server to deploy our project to. We will also be able to set it up to continuously deploy from our project GitHub main branch. Joshua also has experience in it so there should hopefully be fewer/no surprises in the setup for it.

Application layer

We will be using Python as it is a quick language to develop using which also has a large collection of useful libraries that will allow us to progress quickly. The whole group is also familiar with it and is lots of formal and informal documentation we can access as well.

Server/API Layer

We will be using Flask for our API layer. This is because it’s a fairly simple library to use on top of python. The whole group also has experience with it so we should be able to very quickly get into it instead of having to learn and make mistakes with a new system.

Persistence layer

We will be using a SQLite database to store data and using the sqlalchemy python library to access this. We have chosen this as it’s a reliable system that scales well and also is quite easy to use once the initial setup is done.

Related content

Project Management & Communications
Project Management & Communications
Read with this
Design Details
Design Details
More like this
2022-02-22 Meeting notes
2022-02-22 Meeting notes
Read with this
2022-02-21 Meeting notes
2022-02-21 Meeting notes
Read with this
Requirements
Requirements
Read with this
Meeting notes
Meeting notes
Read with this