{"id":22246343,"url":"https://github.com/henry-jacq/photogram-mongodb","last_synced_at":"2026-04-09T23:02:14.302Z","repository":{"id":215315706,"uuid":"737258467","full_name":"henry-jacq/photogram-mongodb","owner":"henry-jacq","description":"Photo Sharing Platform!","archived":false,"fork":false,"pushed_at":"2024-06-03T07:51:45.000Z","size":14637,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-30T10:29:39.621Z","etag":null,"topics":["bootstrap","grunt","jquery","mongodb","php","sass"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/henry-jacq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-30T11:27:49.000Z","updated_at":"2024-07-15T05:53:42.000Z","dependencies_parsed_at":"2024-02-04T07:32:50.903Z","dependency_job_id":"5e6cea17-127c-450c-a1ff-b32264d11ef4","html_url":"https://github.com/henry-jacq/photogram-mongodb","commit_stats":null,"previous_names":["henry-jacq/photogram"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henry-jacq%2Fphotogram-mongodb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henry-jacq%2Fphotogram-mongodb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henry-jacq%2Fphotogram-mongodb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henry-jacq%2Fphotogram-mongodb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/henry-jacq","download_url":"https://codeload.github.com/henry-jacq/photogram-mongodb/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245450963,"owners_count":20617436,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bootstrap","grunt","jquery","mongodb","php","sass"],"created_at":"2024-12-03T05:27:16.361Z","updated_at":"2026-04-09T23:02:09.244Z","avatar_url":"https://github.com/henry-jacq.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Photogram\nPhotogram is an easy-to-use web app for sharing photos with a clean and uncluttered interface.\n\nIt is designed to facilitate photo-sharing among users. Its sleek and intuitive interface, combined with powerful back-end functionality, makes it the ideal platform for sharing photos with friends, family, and colleagues. This document will provide detailed instructions on how to install and run the project, so that you can start sharing your favorite photos today.\n\n\u003e **NOTE:** *This project is currently under development and some things might not work as expected.*\n\n## Table of Contents\n- Getting Started\n  - Prerequisites\n  - Installation\n- Usage\n- Contributing\n\n## Getting Started\n\n### Prerequisites\n\nBefore starting the project, you will need to have the following packages installed on your machine:\n\n- PHP (v8.0 above)\n- NPM\n- Curl\n- Composer\n- Apache (Web Server)\n- Grunt (Task Runner)\n\n### Installation\n\nTo setup photogram, follow these steps:\n\nInstall composer dependencies:\n```bash\ncomposer update\n```\n\nInstall NPM dependencies:\n```bash\nnpm install\n```\n\nInstall Grunt and Sass:\n```bash\nnpm install -g grunt-cli sass\n```\n\nInstall php-gd and php-zup extension:\n- php-gd is used for image processing\n- php-zip is used for zipping files\n\n```bash\nsudo apt-get install php-gd php-zip php-mongodb php-cli php-json php-mbstring php-xml php-pcov php-xdebug certbot python3-certbot-apache\n```\n\nInstall PHPUnit\n```\nwget -O phpunit.phar https://phar.phpunit.de/phpunit-10.phar\nchmod +x phpunit.phar\nsudo mv phpunit.phar /usr/local/bin/phpunit\n```\n\nUncomment the gd and mongodb extension in php.ini config:\n```php\n;extension=gd\n;extension=mongodb\nextension=gd\nextension=mongodb\n```\n\nEnabling apache modules:\n```bash\nsudo a2enmod headers\nsudo a2enmod rewrite\nsudo a2enmod actions\nsudo a2enmod expires\nsudo a2enmod deflate\nsudo a2enmod socache_shmcb\nsudo a2enmod ssl\n```\n\nGenerate SSL certificate\n```bash\nsudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/photogram.key -out /etc/ssl/certs/photogram.crt\n```\n\nAdd apache vhost:\n```bash\nsudo touch /etc/apache2/sites-available/photogram.conf\n```\n- Then paste the following snippet into photogram.conf\n\n- Replace the path with your project's path\n- Photogram HTTP Vhost Config\n```apache\n\u003cVirtualHost *:80\u003e\n    ServerAdmin webmaster@localhost\n    DocumentRoot /home/user/htdocs/photogram/public\n    ServerName photogram.local\n\n    \u003cDirectory /home/user/htdocs/photogram/public/\u003e\n        Options -Indexes +FollowSymLinks\n        AllowOverride All\n        Require all granted\n    \u003c/Directory\u003e\n\n    \u003cIfModule mod_deflate.c\u003e\n        AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/json application/xml image/svg+xml\n    \u003c/IfModule\u003e\n\n    \u003cIfModule mod_expires.c\u003e\n        ExpiresActive On\n        ExpiresByType image/jpg \"access plus 1 year\"\n        ExpiresByType image/jpeg \"access plus 1 year\"\n        ExpiresByType image/png \"access plus 1 year\"\n        ExpiresByType image/gif \"access plus 1 year\"\n    \u003c/IfModule\u003e\n\n    ServerSignature Off\n\n    ErrorLog ${APACHE_LOG_DIR}/error.log\n    CustomLog ${APACHE_LOG_DIR}/access.log combined\n\u003c/VirtualHost\u003e\n```\n\n- Photogram HTTPS Vhost Config\n```apache\n\u003cVirtualHost *:443\u003e\n    ServerAdmin webmaster@localhost\n    DocumentRoot /home/user/htdocs/photogram/public\n    ServerName photogram.local\n\n    \u003cDirectory /home/user/htdocs/photogram/public/\u003e\n        Options -Indexes +FollowSymLinks\n        AllowOverride All\n        Require all granted\n    \u003c/Directory\u003e\n\n    SSLEngine on\n    SSLCertificateFile /etc/ssl/certs/photogram.crt\n    SSLCertificateKeyFile /etc/ssl/private/photogram.key\n\n    \u003cFilesMatch \"\\.(cgi|shtml|phtml|php)$\"\u003e\n        SSLOptions +StdEnvVars\n    \u003c/FilesMatch\u003e\n\n    \u003cDirectory /usr/lib/cgi-bin\u003e\n        SSLOptions +StdEnvVars\n    \u003c/Directory\u003e\n\n    BrowserMatch \"MSIE [2-6]\" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0\n    BrowserMatch \"MSIE [17-9]\" ssl-unclean-shutdown\n\n    \u003cIfModule mod_deflate.c\u003e\n        AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/json application/xml image/svg+xml\n    \u003c/IfModule\u003e\n\n    \u003cIfModule mod_expires.c\u003e\n        ExpiresActive On\n        ExpiresByType image/jpg \"access plus 1 year\"\n        ExpiresByType image/jpeg \"access plus 1 year\"\n        ExpiresByType image/png \"access plus 1 year\"\n        ExpiresByType image/gif \"access plus 1 year\"\n    \u003c/IfModule\u003e\n\n    ServerSignature Off\n\n    ErrorLog ${APACHE_LOG_DIR}/error.log\n    CustomLog ${APACHE_LOG_DIR}/access.log combined\n\u003c/VirtualHost\u003e\n```\n\nRestart apache to apply changes\n```bash\nsudo service apache2 restart\n```\n\nTo find out which user as apache web server running? Run this command.\n\n```bash\nps aux | egrep '(apache|httpd)' | awk '{print $1}' | uniq -d\n``` \n\nCreate and change folder permissions:\n- This is to allow apache to move uploaded files to this folder.\n- If the user is not the same as below, you can replace www:data user with the user that is currently running Apache.\n```bash\nmkdir -p storage/posts/ storage/avatars/\n\nsudo chown -R www-data:www-data storage/\nsudo chmod -R 755 storage/\nsudo usermod -aG \u003cusername\u003e www-data \n```\n\n\n## Usage\n\nThe Photogram application has an intuitive and user-friendly interface that makes it easy to share your photos with others. Once you've logged in to your account, simply click on the upload button and select the images you wish to share. It will guide you through the process of uploading your photos and adding relevant descriptions.\n\nOnce your photos are uploaded, they will be visible to other users on the platform. You can browse and search through existing content, and interact with other users by liking and commenting on their photos.\n\nOverall, Photogram is a powerful yet simple-to-use platform that makes it easy to share your visual creations. Whether you're a professional photographer or just someone who loves to capture and share moments with others, Photogram is the perfect platform for you.\n\n## Contributing\n\nWe welcome contributions to the Photogram project! Here are some ways you can get involved:\n\n- Report bugs and suggest new features by creating an issue on our [git repository](https://git.selfmade.ninja/Henry/photogram/-/issues).\n- Contribute code by forking the repository, making changes, and submitting a pull request.\n- Help improve the documentation by submitting a pull request with your changes.\n\nThank you for your interest in contributing to Photogram!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhenry-jacq%2Fphotogram-mongodb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhenry-jacq%2Fphotogram-mongodb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhenry-jacq%2Fphotogram-mongodb/lists"}