Giter Club home page Giter Club logo

unaviamedia's People

Stargazers

 avatar

unaviamedia's Issues

Remove fixed menu in mobile view

In desktop and tablet view the menu should be fixed to the top of the screen, but in mobile view it should follow along with the rest of the content when scrolling.

Could have the menu icon only (instead of bar) in mobile, partially transparent in upper corner of screen.

Add About Me page

Add an About Me page to the site, that will also double as a resume. The page will also have a contact section at the bottom.

  • Content added to page
  • Mobile styles implemented
  • Desktop styles implemented
  • Contact form created
  • Submission database table created
  • Mailing system implemented
  • JavaScript validation added

Create users database

Create database of authenticated users (admins) who can perform CRUD operations on blog posts. This should also include a database creation and seeding script for testing.

  • User
    • username
    • display_name
    • password
    • salt
    • email
    • first_name
    • last_name
    • date_joined
    • activated

Import MVC code

Import the MVC portion of the php_api repository for use. This will enable simple blog urls as well as prettified page urls.

Create custom constants file for security

Create a file to contain custom constants for two reasons:

  1. Security - Don't release development accounts and passwords
  2. Development - Other developers can easily change to their own constants

Add escaping before inserting into database

There is no PHP escaping before inserting into the database. There should be a function (possibly mysql_real_escape_string()) to look after this. Quotations marks are currently breaking the database.

Merge `Create` and `Update` view pages

The Create and Update view pages for Blog Posts should be updated to use the same page. This will drastically improve maintainability.

An additional variable should be added to track which mode is requested; alternatively, it could decided based upon the action in the request.

...
if ( $request->action = "Create" ) {
    //Additional actions for create (probably not many)
} else {
    //Additional actions for update (add hidden fields [`id`], etc)
}
...

Add basic authentication

Add basic authentication functionality that determines whether viewers can see/use admin functionality and views. Currently this will only use a single username/password for authentication. This will require a login page as well.

Add JS validation to Contact Form

Add simple JS validation to the contact form:

  • Required fields must have values
  • Submit button can't be clicked until errors are gone???
  • Errors display underneath respective fields
    • Small error icon as well
    • Field bottom border should be red
  • Add timer removal feature to messages

Add Contact Me page

Add a page for viewers to contact me.

  • Add page with basic form and submission
  • Add database table for storing comments
  • Add email system for emailing comments to me

Use `POST` or `GET` methods to determine between `Create`, `Edit`, and `Delete` functions

Rather than checking if an ID was passed to the main controller functions, it would be nice to use the REQUEST type instead to determine the next processing step/function.

ie. A GET request to /Blog/Create would run the create() function to display the Create page, but a POST request to /Blog/Create would run the createPost() function to actually add the Post.

Create blog models

Create the models (classes) and validation for blog entities

  • Blog
    • name > 5 chars
    • description > 5 chars
    • date_modified >= data_created
  • Category
    • name > 2 chars
    • description > 5 chars

Create `Message` class for displaying message

There are several different types of messages that should be modularized:

  • Message text
  • Message type
    • Info, success, warn, error
  • Where message will be placed
    • Relative to window or in DOM
  • Whether message is closable
  • Whether message will close after a timeout
  • Whether the message should have an icon
  • What type of animation should display

Create tables for Blog

Create the table structure of the site blog, which needs to include the following:

  • users
  • posts
  • tags

Create tables for Contact form

Create the table structure to hold Contact form submissions and replies, including the following:

  • Submissions
  • Replies

Add QA-style to About page

Add a Q/A-style section to the About page (preferably colourful, with vector art if possible).

Here is the Q/A section from a previous site:

<h2>Interests</h2>
<p>Aside from my inner "geek zone", my interests also include relaxation through reading and choral music.</p>
<p>I'm a second-year student at Conestoga College in the Computer Programmer/Analyst co-op program and am approaching a 16 month term of availability for co-op starting in May 2016. My objective is obtain a co-op position in an environment where my knowledge of programming and systems analysis can be used to solve business problems quickly and efficiently.</p>
<p>I'm passionate about web design and development, especially responsive web design. I also enjoy software and mobile application development with a focus on simple and modern design. I strive to produce clean and maintainable code while utilizing my knowledge of object-oriented programming concepts.</p>
<p>On a personal level, I am a dedicated team player who enjoys a collaboration and personal relationships while still being committed to producing quality work. In my spare time I love playing around with different technologies, both web and otherwise, as well as learning about all things related. I am also driven to learn and apply new ideas that I stumble upon in order to improve my productivity and efficiency.</p>

<dl>
    <dt>Could you give a brief description of yourself?</dt>
    <dd>I'm a second-year student at Conestoga College in the Computer Programmer/Analyst co-op program, scheduled to graduate in April 2018. I'm passionate about programming and have enjoyed it since my first exposure to it in high school. I have always enjoyed learning and am a dedicated student, maintaining a 4.0 GPA through my first 4 semesters until now.</dd>
    <dt>What do you do in your spare time away from school?</dt>
    <dd>In my spare time I enjoy looking at various technologies taught at school and expanding them a bit more to fit more situations and problems. Additionally, I greatly enjoy choral singing and have been part of several choral groups within the past few years, including a tour to the British Isles.</dd>
    <dt>What are your plans for the coming year away from school?</dt>
    <dd>I am planning on working as a co-op student at a Waterloo company once this semester is over, and will be working there for at least 8 months in the role of a software/web developer.</dd>
    <dt>What do you plan to do on the side during this time?</dt>
    <dd>My goal is to design and complete a non-trivial mobile app (using a framework of some kind) and use PhoneGap (or similar) to deploy it to an app store. I also hope to gain experience and become more comfortable with languages and platforms such as PHP, JavaScript, Linux, etc.</dd>
    <dt>Between the fields of web, software, mobile, and game development, what interests you the most?</dt>
    <dd>At this point, probably web development, as I feel that it has both the greatest exposure as well as some of the most varying learning topics. There's always new ideas to explore and ways to adapt existing ones.</dd>
    <dt>Are you interested in the other mentioned fields?</dt>
    <dd>Definitely. I'm also rather curious about mobile development, as it's something I've never really done. I'm looking forward to spending some time experimenting with it during the coming months, but it will probably stay as a side-focus for now. That being said, I would like to spend some time learning dedicated Android development before heading back for my final year, in order to know a fair bit about it already.</dd>
    <dt>You also mentioned becoming more comfortable with various technologies, could you talk a bit more about that?</dt>
    <dd>I'm hoping to spend a significant amount of time acquanting myself with more than just the basics of several languages/platforms, such as learning more advanced JavaScript and jQuery, as well as looking at using Linux as my web development OS.</dd>
    <dt>Are there any other languages that you want to look at?</dt>
    <dd>Absolutely! The first ones that I would like to learn the basics of are Ruby, Python, and Git, as these seem to be still quite common but were unfortunately not taught in my program.</dd>
    <dt>Looking further down the road, where do you see yourself in two years?</dt>
    <dd>Graduated from the Computer Programmer/Analyst program at Conestoga College, and employed at a reputable organization where I can continue to expand my programming knowledge while helping to analyze and solve business problems effectively within a development team.</dd>
</dl>

Setup Gulp build process

Setup Gulp automated build process:

  • Process SASS
  • Concatenate SASS (automatic right now)
  • Minimize CSS (production)
  • Concatenate JS
  • Minimize JS (production)

Add categories control

Add a control on the archive page to allow users to select blogs by category. This could potentially be placed on the blog read page as well.

Add `Category` and `Tag` functionality to posts

Add the Categories and Tags relationship to blog posts. This will need to be done in several parts:

  • Determine system by which to associate categories and tags to a post in the database
  • Update Post model to have lists of categories and tags
  • Implement functionality to retrieve/update list of categories/tags from database in association with a post
  • Reflect this new functionality in the various post views

Add/Update blog styles

Create more modern and complete blog styles.

  • Blog Pages
  • Blog Archive Control
  • Blog Tag Control
  • Blog Category Control

Autoload PHP classes

Set up a PHP class autoloader in order to cut down on the amount of require() statements needed.

Add animations

Add animations to site in various locations:

  • Description cards
  • Work cards
  • Header menu items
  • Contact button
  • Footer social media icons

Add content to projects cards

Add description to the project cards

  • Add link to project title
  • Add description for each project (slide up on hover)
  • Mobile view could display them on click

Add blog archive control

Create blog archive control to display a list of the previous 6 months and all blog posts from within. This should also include a page for blog posts from before then.

Remove backup of site

Need to remove the site backup (unavia-backup) folder, as it is unnecessary.

It may be wise to leave some items behind, such as images.

Create blog database

Create a database to hold the blog entries.

Tables:

  • Blogs
    • id
    • title
    • description
    • content
    • author
    • date_created
    • date_modified
    • published
  • Categories
    • name
    • description
  • Tags
    • name
    • description

Push site live

Push site live to replace the older version. This will happen before the other updates in this milestone.

  • Update server
  • Push site live

Improve blog post action error handling

Currently, when an error happens while performing an action on a blog post it will simply display a generic error message on the Error page. Instead, it should display a more helpful error (such as ValidationResponse or DatabaseResponse);

Create blog controllers

Create the controllers to link the blog database/models to the views. This will later be updated to include authentication.

Create blog views

Create the required views for blogs:

  • Display all
  • Display post
  • Create
  • Edit
  • Delete

Later these will be edited to add authentication

Add URL Rewrite Rules

Rewrite all requests to the index.php file for routing. This is similar to what is done in the php_api respository.

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.