--- tags: nir-vid --- # NIR-VID - work package 1 ## 13/09/2022 A website for hosting images and videos of medical procedures. Users create an account which then allows them to upload an image or video. Other users can browse the catalog of media. Main users are medical professionals. **PI's:** Mohamed Hassouna (UCL surgeon) Manish Chand (UCL surgeon) **Primary developer:** Dr. James Hughes All estimates are costed at a £200 day rate and include only the features mentioned below. Any additional features will need to be discussed in a new work package. Every effort will be made to keep to the below estimates, however sometimes the work can take longer than expected as estimating software work is a challenging process. ___ ## Frontend web development estimates ### Website for uploading media | Task | Time estimate in days | Comments | |-|-|-| | Basic skeleton of the website | 1 | | | Building main pages of the website | 1 | | | Page for displaying images and videos | 1 | Are there any restrictions on video length? Do the images and videos need to be high quality? | | User login and registration page | 1 | Based on our discussions, there will be no need for additional login features such as retrieving lost passwords etc. | | General design, look and feel, responsiveness | 0.5 | Based on discussions, there will be no need to make the website responsive on mobile phones as most users will access the site on a desktop. | | **Total** | **4.5** | | ## Backend estimates ### AWS media storage and user accounts | Task | Time estimate in days | Comments | |-|-|-| | Setting up AWS accounts and security | 1 | You will need to set up an AWS account in order to store all of the data associated with the site. AWS can be tricky to navigate but I am happy to do this for you and walk you through the process. | | Creating buckets for media storage (AWS S3) | 1.5 | AWS S3 is the standard service for hosting images, videos, and other media. | | Database for user accounts (AWS DynamoDB) | 2 | Dynamo DB is a database service for storing non-media related information such as user accounts. | | Deployment (AWS Elastic Beanstalk) | 1 | Elastic Beanstalk is a service for deploying backend applications. | | Setting up communication with the frontend | 0.5 | | | **Total** | **6** | Once your AWS account is set up with a credit or debit card, all monthly costs associated with your site will come out of this account. | #### Further considerations * Do you have any particular access requirements for the images and videos? Once a user uploads a piece of media to the backend it will then be accessible to the AWS account holder via the AWS interface where you can download it. However, the AWS interface is quite basic and will only allow you to download files one at a time. For more advanced usage and downloads, you would need to set up programmatic access or build another website/application. * Note that this is separate to the frontend where all users can freely browse all media that has been uploaded on the website. I can explain the difference between the frontend and backend if needed. ### Revisions to the above work | Task | Time estimate in days | Comments | |-|-|-| | Revisions | 0.5 | | | **Total** | **0.5** | | ### Software maintenance | Task | Time estimate in days | Comments | |-|-|-| | Software maintenance | 1.5 | This is included as an upfront cost to cover software maintenance for one year. This makes it easier for me to fix any bugs or issues as and when they occur. This initial period of maintenance will cover from September 2022 to September 2023. Maintenance strictly covers existing features, any additional features will be costed at the daily rate. | | **Total** | **1.5** | | ### Project management and admin | Task | Time estimate in days | Comments | |-|-|-| | Meetings, emails, notes etc. | 0.5 | | | Managing github project and tickets | 0.5 | This is a standard method of keeping software projects organised so that we can keep track of work that needs to be done. | | **Total** | **1** | | --- ### Total project estimates | Task | Time estimate in days | |----|----| | Frontend website | 4.5 | | AWS backend | 6 | | Revisions | 0.5 | | Software maintenance | 1.5 | | Project management and admin | 1 | | **Total time** | **13.5**| # Total cost: £2700 ## Additional running costs and considerations When the site is up and running, there are some monthly costs to consider. ### Website hosting * Hosting of the website on GitHub pages is free and has no running costs. ### Custom domain name * Buying a custom domain name can cost anywhere between £5 to £25 and up, it all depends on the domain. * You can buy domains from AWS or other service providers. You will usually be charged yearly to keept the domain. * Once you have purchased the domain, AWS will charge around £0.50 per month to maintain it. ### AWS and media storage and server hosting #### Media storage (images and videos) * AWS have their own pricing plan for backend hosting as well as media storage and access. It can be difficult to give accurate estimates as AWS costs are on an 'on-demand' basis which means that you pay for the resources you use. More users means higher costs and a small number of users means minimal costs. * In addition, new AWS accounts can gain access to a free tier for one year which gives free access to some services and will make the monthly costs for data storage minimal (usually less than $5 month, or even less if your user base is small). * After one year, the costs are as follows: * Media storage: $0.024 per GB for the first 50TB, * Media uploads: $0.0053 per 1000 requests, * Media access: $0.00042 per 1000 requests, * **Example**: we have 100 media files stored in AWS at around 10GB, this would cost 24 cents per month to store in AWS. If those media files are viewed 1000 times in a month that would cost an additional 42 cents per month. * For more information on AWS S3 pricing see [here](https://aws.amazon.com/s3/pricing/). * For the database (DynamoDB) the costings will be similar to above. * **All-in-all, under the free tier the costs should be less than $5 a month for data storage, and if your user base is small it should be even less. Costs may increase after the free tier has ended, so you can see how things go and review after 1 year.** #### Server hosting * Low/medium power server machines can be around $15 to $25 and up per month. More powerful machines can cost much more. Again, this can be difficult to estimate as charges are based on how much traffic you recieve to your website. # Basic mock-up of website (user media page) ![](https://i.imgur.com/1W9JWeT.png)