Skip to content

gouiferda/camagru

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CAMAGRU project

Description:

  • CAMAGRU is an instagram like web app that is made with PHP (OOP, MVC structure, PDO), and MySQL

Disclaimer:

  • The project is still under development (unfinished and might have errors and bugs)

Installing:

Install the app through the setup page to create automatically the database and a user account, steps:

  1. Change database credentials and environment variables

    1. Copy and rename the database file:

      • cp config/database.example.php config/database.php
    2. Edit database credentials:

      • vim config/database.php
    3. Copy and rename the environment variables file:

      • cp config/env.vars.example.php config/env.vars.php
    4. Edit environment variables:

      • vim config/env.vars.php
  2. Open setup page:

  3. Authentication

Progress:

  • Config database file: has PDO connection credentials to connect with the database

  • Config setup file: creates database and tables and a user account (user1:helloWorld10$$)

  • Database Class (inherited by all classes)

    • get all
    • get where (by conditions and more)
    • create
    • update
    • delete
    • delete where
    • count all
    • count where
  • User class

    • login function
    • sign up function (with secured password in validation)
    • create function : with hashed password
    • update function : for edit profile page
  • Post class

    • validate post from local
    • publish post from camera
    • validate post from camera
    • publish post from local
    • get all
    • get for user
    • like
    • unlike
    • comment
    • delete and deletes all associated likes and comments
    • get all with limit (for pagination in home and profile page)
  • Like class

  • Comment class

    • send mail after comment published if preference is activated
  • Mail class (functions to send mail)

  • Session class (deals with sessions and session messages)

  • Routing functions

  • Rendering functions

  • Cookies functions (secured)

  • Design

    • Themes and CSS
    • Navigation menu (dynamic)
    • Layout (nav,body,sidebar,footer)
    • Darkmode button (using cookies)
    • Mobile optimized
      • Fix nav menu (with js)
  • Error page

  • Sign in page

  • Logout page

  • Sign up page

  • Confirm account by email page

  • Recover password page

  • Profile page

    • Design
    • Logic
      • Basic info
      • Connected user's post all
      • Comments and likes statistics
      • Connected user's post pagination
  • Edit profile page

    • Design
    • Logic (change info and password)
  • Publish picture page

    • Design
    • Logic
      • Capture picture from Live webcam (js)
      • Add stickers to picture from camera (js)
      • Upload picture from camera (php)
      • Upload picture from local (php)
      • Validate the local picture (php)
      • Combine sticker and pick on php
      • Add stickers to picture from local (js)
      • Switch between modes (cemera/upload) (js)
  • Post page

    • Design
    • Logic
      • (get post by id)
      • get all (for publish page)
      • get all by user with offset and number (for profile page)
      • like & unlike & delete route (/post/1/like & /post/1/unlike & /post/1/delete)
      • delete post
      • comment on post
  • Home page

    • Design
    • Logic
      • listing all posts of all users
      • listing posts with Pagination (infinite pagination)
  • Validation and messages

    • Validation functions
    • Session messages
    • Validation messages
  • Security functions

    • securing routes (by session and htaccess)
    • check user logged and permissions
    • hashed password
    • protection against database injection (prepared statements)
    • Protection against inject HTML or “user” JavaScript in badly protected variables.
    • Protection against Use an extern form to manipulate so-called private data
  • Testing

    • compatible with Firefox (>= 41) and Chrome (>= 46)
    • private and protected pages
    • validation errors in forms
    • incorrect page links
    • injection testing
    • Test Gif with png problem & png with png problem (filter) (other machines)
    • Test compatibility with chrome old v
    • Extern form to manipulate private data??
  • Finalizing Deleting debugging messages and elements One database file

  • More to do

    • Hide load more if all loaded
    • Likes and comments ajax
    • Improve design

About

Instagram like web app that is made with PHP

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published