Student declaration I certify that the assignment submission is entirely my own work and I fully understand the consequences of plagiarism. I understand that making a false declaration is a form of malpractice. Student’s signature Grading grid P5
P6
P7
P8
M3
M4
D2
D3
Summative Feedback:
Grade:
Resubmission Feedback:
Assessor Signature:
Internal Verifier’s Comments:
Signature & Date:
Date:
Table of Contents P5. CLOUD COMPUTING PLATFORM CONFIGURATION ................................................................................. 6 I. Render configuration............................................................................................................................... 6 II. Connecting Render to Git ....................................................................................................................... 7 III. PostgreSql configuration on Render ..................................................................................................... 8 P6. CLOUD PLATFORM IMPLEMENTATION .................................................................................................. 10 I. Database for ATN .................................................................................................................................. 10 1. Creating database............................................................................................................................. 10 2. Connecting database to postgreSql ................................................................................................. 13 II. Code implementation ........................................................................................................................... 14 1. UseCase diagram .............................................................................................................................. 14 2. Project structure ............................................................................................................................... 15 3. Home page ....................................................................................................................................... 16 4. Shop page ......................................................................................................................................... 19 5. Admin page....................................................................................................................................... 22 6. Director page .................................................................................................................................... 23 III. Commiting code to Git ........................................................................................................................ 27 1. Creating repository ........................................................................................................................... 27 2. Uploading code on github ................................................................................................................ 28 IV. Deploying app to Render .................................................................................................................... 30 P7. CLOUD PLATFORM PROBLEM ANALYSIS AND SOLUTIONS .................................................................... 32
I. Limited Control and Flexibility............................................................................................................... 32 II. Internet connection .............................................................................................................................. 32 III. Vendor Lock-In..................................................................................................................................... 33 IV. Downtime ............................................................................................................................................ 33 P8. ASSESS COMMON SECURITY ISSUES IN CLOUD ENVIRONMENTS ......................................................... 35 I. Overview ................................................................................................................................................ 35 II. Security issues ...................................................................................................................................... 35 1. Misconfiguration .............................................................................................................................. 35
2. Uauthorized access........................................................................................................................... 35 3. Data loss ........................................................................................................................................... 36 4. Insecure APIs .................................................................................................................................... 36 4. Hijacking of accounts ........................................................................................................................ 36 5. Retricted access to network operations .......................................................................................... 37 M3. DISCUSS PROBLEMS AND LIMITATIONS IN THE DEVELOPMENT PROCESS .......................................... 38 I. Overview ................................................................................................................................................ 38 1. Cloud computing .............................................................................................................................. 38 2. Top challenges in cloud computing .................................................................................................. 38 II. Issues in development process ............................................................................................................ 38 1. Data security and privacy ................................................................................................................. 38 2. Cost management ............................................................................................................................ 39 3. Lack of expertise ............................................................................................................................... 39 4. Control or governance...................................................................................................................... 39 5. Compliance ....................................................................................................................................... 39 6. Multi Cloud environments................................................................................................................ 39 7. Performance challenges ................................................................................................................... 39 8. Migration .......................................................................................................................................... 39 M4. ADDRESS SECURITY ISSUES WHEN BUILDING SECURE CLOUD PLATFORM .......................................... 40 I. Big questions for cloud security ............................................................................................................ 40
1. Is cloud computing secure ................................................................................................................ 40 2. Why is cloud security important ...................................................................................................... 40 II. How to overcome these security issues ............................................................................................... 41 1. Limit the cloud computing vendors.................................................................................................. 41 2. Confirm your access to cloud environment information ................................................................. 41 3. Verify Security SLAs .......................................................................................................................... 41 4. Examine the specific security measures........................................................................................... 41 5. Employ advanced firewall solutions ................................................................................................. 42 6. Implement data encryption.............................................................................................................. 42
7. Seek advice from cybersecurity experts........................................................................................... 42 D2. CRITICALLY DISCUSS HOW ORGANIZATIONS OVERCOME ISSUES ......................................................... 43 I. Solutions ................................................................................................................................................ 43 1. Data security and privacy ................................................................................................................. 43 2. Cost management ............................................................................................................................ 43 3. Lack of expertise ............................................................................................................................... 43 4. Control or governance...................................................................................................................... 43 5. Compliance ....................................................................................................................................... 44 6. Multi Cloud environments................................................................................................................ 44 7. Performance challenges ................................................................................................................... 44 8. Migration .......................................................................................................................................... 44 D3. CRITICALLY DISCUSS HOW ORGANIZATIONS PROTECT DATA WHEN MIGRATING TO CLOUD.............. 45 I. Overview ................................................................................................................................................ 45 II. How to protect data in migrating to cloud........................................................................................... 45 1. Evaluate current data landscape ...................................................................................................... 45 2. Conprehend regulatory compliance framework .............................................................................. 46 3. Select appropriate data security tools ............................................................................................. 46 4. Manage authorized personnel for data access ................................................................................ 46 5. Encrypt data during transit............................................................................................................... 47
6. Plan decommissioning activities for remaining data center ............................................................ 47 Table of Figures ............................................................................................................................................ 48 REFERENCE LIST ............................................................................................................................................ 50
P5. CLOUD COMPUTING PLATFORM CONFIGURATION I. Render configuration When I click "Login" in the render, it redirects me to the login page. After that, when I log in using your GitHub account, my Render account automatically links or connects to my GitHub account. This allows for seamless integration and authentication between my Render and GitHub accounts.
Figure 1. Login page in render
Figure 2. Login by github account
II. Connecting Render to Git After successfully creating my Render account, I go to my GitHub account settings, navigate to "Installations," and there I can find my Render account. I click to configure
Figure 3. Render account on github
At this point, I change the repository access to "All repositories" to grant Render permission to access all of my repositories.
Figure 4. Repository access on github
III. PostgreSql configuration on Render Then, I log in to Render using my GitHub account and click on "New" located on the top right side of
the Render homepage. From there, I select "PostgreSQL" as the option to create a new PostgreSQL database.
Figure 5. PostgreSQL selection
What I need to do is simply enter the name of my database, and I can leave the other fields empty. Render will automatically generate the necessary configurations for me. As a student, I can select the free option to use the database for free on Render.
Figure 6. Interface for creating database (1)
Figure 7. Interface for creating database (2)
P6. CLOUD PLATFORM IMPLEMENTATION I. Database for ATN 1. Creating database First, I need to create a database, and I set its name as "atn." Then, I create five tables: "category" (to classify toy categories), "role" (to categorize admin, director, and users), "shop" (to manage toy shops), "toy" (representing ATN company products), and "users" (for regular users).
Figure 8. ATN database
Figure 9. Tables in ATN database
Category Table:
categoryid: A unique identifier for each category. categoryname: The name of the toy category (e.g., "Action Figures," "Puzzles").
Figure 10. Category table
Role Table:
roleid: A unique identifier for each role. rolename: The name of the role (e.g., "Admin," "Director," "User").
Figure 11. Role table
Shop Table:
shopid: A unique identifier for each shop user. username: The username of the shop user. password: The password for the shop user.
Figure 12. Shop table
Toy Table:
toyid: A unique identifier for each toy. toyname: The name of the toy. price: The price of the toy. origin: The origin or place of manufacture. description: A description of the toy. category_id: A reference to the category of the toy, linking to the "category" table. image: Possibly a field to store an image of the toy. shop_id: A reference to the shop managing or selling the toy, linking to the "shop" table.
Figure 13. Toy table
Users Table:
userid: A unique identifier for each user. username: The username of the user. password: The password for the user. role_id: A reference to the user's role, linking to the "role" table.
Figure 14. Users table
2. Connecting database to postgreSql After successfully creating the database on Render, I'll need to obtain the connection information for my PostgreSQL database. This information typically includes:
Host Name: The address of the PostgreSQL server where my database is hosted. Port: The port number on which the PostgreSQL server is listening for connections. Username: The username I'll use to access the database.
Figure 15. Database information on render
I'll use this information to set up a connection to my PostgreSQL database on my local development environment, allowing me to interact with the database and develop my application using the data stored in my Render-hosted database.
Figure 16. Database information on local
II. Code implementation 1. UseCase diagram In my system for ATN Company
Regular users can view the list of toys. Directors can view the list of toys and set the time interval for page refresh. Shop managers can view the list of toys, update the toy information, add new toys to the inventory, and delete toys from the inventory. Admin users can view the list of all users and shoppers in the system.
Figure 17. UseCase diagram for ATN
2. Project structure In my code, I've used the following technologies and structure:
I've employed the Express.js framework for building my application. I've used Tailwind CSS to create an aesthetically pleasing user interface (UI). I've incorporated common packages such as Nodemon for auto-reloading during development, Session for managing user sessions, and pg (presumably for PostgreSQL) for database interaction. Inside the "helpers" folder, I've organized JavaScript files to perform various external tasks that support my application. The "models" directory contains files responsible for interacting with the database, handling data storage, and retrieval.
The "public" folder houses CSS, JavaScript, and image files that are publicly accessible to enhance the appearance and functionality of my application. The "views" directory contains the pages and user interface components used in my application. Additionally, I have other external configuration files that are essential for my project's setup and configuration.
This structure and the technologies I've chosen provide a foundation for developing a web application that includes a user-friendly UI, database interaction, and various functionalities.
Figure 18. File structure in project
3. Home page Below is the home page of the application, which includes a search bar with filter options and a list of toys. Each toy in the list displays its name, description, image, price, origin, and category: Search Bar: Users can use the search bar to input keywords for searching specific toys. Filter Options: The filter options allow users to refine their search based on specific criteria. List of Toys: Each toy item in the list typically includes the following details:
Toy Name: The name or title of the toy. Description: A brief description or information about the toy. Image: An image representing the toy to provide visual information. Price: The cost or price of the toy.
Origin: The place or country where the toy is produced. Category: The category or type to which the toy belongs, helping users classify and identify the toy easily.
This home page provides a user-friendly interface for searching and browsing toys based on various criteria, making it easier for users to find the toys that match their preferences and needs.
Figure 19. Interface of home page
When the page runs, it triggers the load_data function, which initiates a request to a specific route in your application. This route, in turn, communicates with the database to fetch data related to toys. Once the requested data is retrieved from the database, it is then returned to the page, allowing the application to display all the toys on the home page. $(document).ready(function(){ let categoryId; load_data(''); function load_data(filter, category) { $.ajax({ url: '/', method: "POST", data: { action: 'fetch', filter: filter, category: category}, dataType: "JSON", success: function (data) { var html = ''; if(data.data.length > 0) { for(var count = 0; count < data.data.length; count++) {