School 42 project. Camagru is an Instagram like web app.
- Backend in vanilla PHP
- Custom built router, request object, controllers and ORM entities to mimic the behaviour of frameworks like Laravel or Symfony.
- Frontend in HTML, CSS + Tailwindcss, vanilla Javascript
- Mobile friendly
- Runs on nginx server
- Scripts executed by php-fpm
- Data stored using MySQL
- Phpmyadmin enabled
- Deployed using Docker
When a user registers, he / she needs to verify the account via an email that was sent. Furthermore, it is possible to reset a password.
Logged in user can take a picture via camera or upload it.
If user desires, frames can be added to the image. After description is added, new post can be submitted. Also, previous posts are available here and can be deleted too.
In the catalog all submitted posts can be viewed, liked, commented and shared.
Only logged in users can like and comment.
The user can also edit profile settings. Each time user's post is commented a notification via email is sent.
First, your machine must have Docker installed.
Clone this repository
git clone git@github.com:lauris-printify/camagru.git
Switch to project folder
cd camagru
Add API keys in
camagru/config/apis.php
Run the app using docker
docker-compose up
Open the app
http://localhost:8098/catalog
Log into phpmyadmin http://localhost:8088 using:
username: root
password: rootroot
Sample user with sample posts are created in config file
camagru/config/database.php
I would have used data dump in Docker setup, but school's subject required having database setup in that file.