Giter Club home page Giter Club logo

project_3-1's Introduction

DATA-CENTRIC DEVELOPMENT

My third Milestone Project

Throughout this project I will be using the technologies that I have learnt so far from Code Institue. This project will consist of HTML5, CSS3, JQuery, JavaScript, Python, Flask and NoSQL(MongoDB).

The site designed was a recipe cookery web based application. Database was stored and retrieved from the backend(MongoDB). I have decided to follow the project requirement provided in brief.

UX

The UX for this project is easy and understandable. It is mainly a web based application that also function well on mobie. Navigations are quite easy and smooth for users. The application is intuitive to use and has information on it presented well. There is a filter that allows user to narrow/navigate thier search through the application. The web application allows user to create,read(view),edit(update) and delete smoothly.

The data schema used displays perfectly throughout the form thus allowing user to implement the CRUD rule perfectly. The application allows for addition of a new image or automatically adds a default image. The colour scheme was very simple and makes the site quite clear and readable enough for users. This application is very easy for a user to manipulate and understand.

Features

  • Navbar - Materialize was used for quick production of modern CSS and use of their predefinded classes.

  • Images - Flask werkzeug was used to allow user attach image files. Images used are acquired via google.

  • Card - Materialize predefinded classes was used for great UX view.

  • Button/Links - Was used to allow/trigger users intentions/actions on application.

  • Material Icon - Icons was used to improve the UX for each logo when viewed by a user/visitor.

  • Forms/Filter - Materialize and Flask WTForms was helpful with predefined classes usable in Jinja templates.

  • Wireframing- I just did some mock ups on paper with pen of how the site generally should look and feel.

Possible feature to implement

  • User Account - Try to add ability for a user to Sign Up/Sign In

Getting Started

The website is built using HTML5, CSS3, JavaScript and JQuery for interactivity, Python, Materialize frameworks, Flask frameworks

Prerequisites

The site is fully functional without any local files needed to be downloaded all frameworks and scripts used are loaded via an approved CDN. Before deployment the site was tested on several browsers and devices. This site is supported on all browsers. Check below for tested devices and browsers.

External sites used

Frameworks used

Custom Fonts

I used fonts from @googleapis CSS 'Overlock, Londrina+Solid' to create difference in headers and written styles.

Technologies used

  • JQuery & JavaScript - Was used to allow interactivity, file attachment and buttons to function smoothly. Jquery

  • NoSQL - MongoDB was used to create database and pulled via the route. MongoDB

  • Python - Was used to route and call backend database schema from MongoDB.[Python](Lecture Notes)

  • Flask - Produces very useful packages like Jinja,WTForms,PyMongo that allows application to be more functional.Flask

  • Heroku - Was used to deploy application to run on any every technological devices. Heroku

  • Materialze JS - For easy dropdown during user select option and mobile screen view Materialize

  • Favicons - Used to improve UX when viewing the top of the webpage. Favicon-generator

  • Materialize Classes - To trigger more styles and reduce CSS over-styling Materialize

  • Material Icon - To improve view of UX when surfing the application Material Icon

Testing

  • Tested on Chrome (Tested in DevOps on all mobile and tablet devices possible for testing.)
  • Tested on IE
  • Tested on Android
  • Tested on Samsung S6 - S9
  • Tested on Iphone
  • Tested on Firefox (Tested in DevOps on all mobile and tablet devices possible for testing.)
  • Tested on Opera (Tested in DevOps on all mobile and tablet devices possible for testing.)
  • Tested on Safari (Tested in DevOps on all mobile and tablet devices possible for testing.)
Tested Chrome Functions
Navbar Yes Yes
Filter Yes Yes
Images Yes Yes
Select BTN Yes Yes
Link BTN Yes Yes
Add BTN Yes Yes
Edit BTN Yes Yes
Filter BTN Yes Yes
File Attach Yes Yes
Delete BTN Yes Yes
Update BTN Yes Yes
Tested IE Functions
Navbar Yes Yes
Filter Yes Yes
Images Yes Yes
Select BTN Yes Yes
Link BTN Yes Yes
Add BTN Yes Yes
Edit BTN Yes Yes
Filter BTN Yes Yes
File Attach Yes Yes
Delete BTN Yes Yes
Update BTN Yes Yes
Tested Android Functions
Navbar Yes Yes
Filter Yes Yes
Images Yes Yes
Select BTN Yes Yes
Link BTN Yes Yes
Add BTN Yes Yes
Edit BTN Yes Yes
Filter BTN Yes Yes
File Attach Yes Yes
Delete BTN Yes Yes
Update BTN Yes Yes
Tested Samsung S7-S10 Functions
Navbar Yes Yes
Filter Yes Yes
Images Yes Yes
Select BTN Yes Yes
Link BTN Yes Yes
Add BTN Yes Yes
Edit BTN Yes Yes
Filter BTN Yes Yes
File Attach Yes Yes
Delete BTN Yes Yes
Update BTN Yes Yes
Tested IPhone Functions
Navbar Yes Yes
Filter Yes Yes
Images Yes Yes
Select BTN Yes Yes
Link BTN Yes Yes
Add BTN Yes Yes
Edit BTN Yes Yes
Filter BTN Yes Yes
File Attach Yes Yes
Delete BTN Yes Yes
Update BTN Yes Yes
Tested Firefox Functions
Navbar Yes Yes
Filter Yes Yes
Images Yes Yes
Select BTN Yes Yes
Link BTN Yes Yes
Add BTN Yes Yes
Edit BTN Yes Yes
Filter BTN Yes Yes
File Attach Yes Yes
Delete BTN Yes Yes
Update BTN Yes Yes
Tested Opera Functions
Navbar Yes Yes
Filter Yes Yes
Images Yes Yes
Select BTN Yes Yes
Link BTN Yes Yes
Add BTN Yes Yes
Edit BTN Yes Yes
Filter BTN Yes Yes
File Attach Yes Yes
Delete BTN Yes Yes
Update BTN Yes Yes
Tested Safari Functions
Navbar Yes Yes
Filter Yes Yes
Images Yes Yes
Select BTN Yes Yes
Link BTN Yes Yes
Add BTN Yes Yes
Edit BTN Yes Yes
Filter BTN Yes Yes
File Attach Yes Yes
Delete BTN Yes Yes
Update BTN Yes Yes

Deployment

GitHub Deployment

Created a new repositories on Github where the project will be deployed unto at each commit. At first, use a git remote command to link project with new repo. Then use the git push -u origin master command to push codes and every change into new repo

Using the CLI in terminal to call git init to start git initialization on the project. This allows a file/files to be added to the Github repo by calling a git add command. Then any added file/files is being commited with a git commit -m "commit message" command. Afterwards, the file is been pushed with git push where Github username + password is required. Once successful, code will be deployed into your repo and git status command should indicate branch tree clean.

Heroku Deployment

Created a new app on Heroku where the app is hosted live. At first, to allow Heroku locate application we login into the CLI using ** heroku login -i** command. You will be requested to imput username and password for Heroku account. After which you can request Heroku Apps via CLI.

Knowing the apps you need to pass deployment into then we can use heroku git:remote -a to allow Git automatically update deployment in Heroku. Once this has been remotely passed . To host the app unto heroku pass the IP and PORT config to match the route main config.

To allow git to push to heroku the command git push heroku master must be called for a final push. For a succefull and healthy push it is best adviced to have the requirement.txt and Procfile files installed or updated. Most especially for requirement.txt file which gave me a lot of challenges, it requires to be updated along with any installed packages so it can depoly successfully, i.e Flask packages.

HTML, CSS, JQuery, JavaScript, Python

All my mark up is HTML valid All my styling is CSS valid All my syntax is JavaScript syntactically valid All my routing is Python valid

Version Used

I use GitHub for version control. Which backup my code incase I encounter a bug or an error that needs urgent fix. I can easily traceback my code on GitHub.

Authors

Dehinde - Shogbanmu - Project 3

Credits

Content

The images used was retrieved from Google The recipe used was retreived from Google The logos was generated via icon8 The data was retrived from my MongoDB database

Acknowledgements

I received a great inspiration for this project via my mentor, he was a great help. Ali Ashik

project_3-1's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.