Not A Instagram Clone!
Developed with the software and tools below.
Gallery is a Django-based project designed to provide a comprehensive platform for managing and displaying images. The project features a robust backend for handling image uploads, storage, and retrieval, along with a clean and intuitive frontend interface for users.
- Validators: Validate size and extension of posts. Ensure only valid image extensions are uploaded.
- Restrictions: Implement three restrictions: (a) Prevent overpopulation of images, (b) Limit rapid image uploads, and (c) Enforce size limits on images. Additionally, implementing a delete feature will erase associated files permanently.
- Cloud Storage: Moved from server-side storage to cloud storage using Cloudinary, providing scalable and reliable storage solutions.
- Background Processing: Utilize Django-Celery as a background worker and Redis as a message broker for asynchronous processing. Implement a mail system on SignUp to Gallery, first post on Gallery, and reset password, using Celery to reduce response time in email and image post.
- Notifications: Utilize the Messages Framework in Django to push toast notifications on various events such as image upload, image delete, and image size alerts.
- Model Relationship: Include preupload images to get users started. Utilize Model Relationships to assign users with preuploaded images.
- Authentication using JWT: Implement authentication using JSON Web Tokens (JWT) for SignUp and changing password token.
- Upload Bar: Add a upload bar for visulizing the image uploading.
- Phone number: Add a phone number verification service using twillio etc.
- Improve Performance: Optimize database queries and image processing for faster load times.
- UI/UX Improvements: Revamp the user interface for a more modern and user-friendly experience.
Contributions are welcome! Here are several ways you can contribute:
- Submit Pull Requests: Review open PRs, and submit your own PRs.
- Join the Discussions: Share your insights, provide feedback, or ask questions.
- Report Issues: Submit bugs found or log feature requests for Gallery.
-
Fork the Repository: Start by forking the project repository to your GitHub account.
-
Clone Locally: Clone the forked repository to your local machine using a Git client.
git clone https://github.com/blueberry-101/Gallery
-
Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
-
Make Your Changes: Develop and test your changes locally.
-
Commit Your Changes: Commit with a clear message describing your updates.
git commit -m 'Implemented new feature x.' -
Push to GitHub: Push the changes to your forked repository.
git push origin new-feature-x
-
Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
Once your PR is reviewed and approved, it will be merged into the main branch.






