A Django web application for Django Cameroon's Hacktoberfest 2025 celebration. Share your social media posts about Django Cameroon's Hacktoberfest participation and see them displayed on a beautiful gallery.
Perfect Screen is a community-driven project where participants can submit screenshots of their social media posts about Django Cameroon's Hacktoberfest 2025. All submissions are displayed in an elegant gallery with Hacktoberfest's official branding.
- Display social media post screenshots in an elegant hero section with overlapping, inclined cards
- Paginated gallery view of community contributions
- Lazy loading for optimal performance
- Hacktoberfest 2025 official theme and colors
- Management command to load data from JSON
- Responsive design with TailwindCSS
- Python 3.11+
- uv package manager
- Django 5.2+
- Pillow
- Clone the repository:
git clone https://github.com/DjangoCameroon/PerfectScreen.git
cd PerfectScreen- Install dependencies using uv:
uv sync- Run migrations:
uv run python manage.py migrate- Load sample data:
uv run python manage.py load_posts- Run the development server:
uv run python manage.py runserver- Visit
http://localhost:8000in your browser
- Post about Django Cameroon Hacktoberfest on Twitter or LinkedIn
- Tag @DigitalOcean in your post
- Include these hashtags:
#DjangoCameroonHack#Hacktoberfest#DjCMRHacktoberfest - Star this repository on GitHub
- Take a screenshot of your post
- Follow the contribution guide to add your screenshot
Please read CONTRIBUTING.md for detailed instructions on how to contribute your social media posts or code improvements.
- Fork this repository
- Add your screenshot to
data/images/ - Update
data/posts.jsonwith your information:
{
"username": "your_username",
"platform": "Twitter",
"screenshot": "images/your-username-twitter.png",
"post_url": "https://twitter.com/your_username/status/123456789",
"has_tagged_digitalocean": true,
"has_starred_repo": true
}- Submit a Pull Request
PerfectScreen/
├── data/
│ ├── images/ # Social media post screenshots
│ └── posts.json # Post metadata
├── perfectscreen/ # Django project settings
├── posts/ # Main Django app
│ ├── management/
│ │ └── commands/
│ │ └── load_posts.py # Load data from JSON
│ ├── models.py # SocialPost model
│ ├── views.py # View logic
│ └── templates/
│ └── posts/
│ └── home.html # Main template
├── .github/
│ ├── ISSUE_TEMPLATE/
│ └── PULL_REQUEST_TEMPLATE/
├── CONTRIBUTING.md
├── LICENSE
└── README.md
- Framework: Django 5.2.7
- Package Manager: uv
- Frontend: TailwindCSS CDN
- Font: Atkinson Hyperlegible
- Image Processing: Pillow
The project uses Hacktoberfest 2025's official branding:
- Primary Background:
#1C1C3F(Navy) - Purple:
#5A5AB5 - Lavender:
#C2C2FF - Dark Purple:
#403F7D - Periwinkle:
#A0A0FF
- Font Family: Atkinson Hyperlegible
uv run python manage.py load_postsThis command reads data/posts.json and loads all posts into the database.
uv run python manage.py makemigrationsuv run python manage.py testuv run python manage.py createsuperuserThis project is licensed under the MIT License - see the LICENSE file for details.
- Organization: Django Cameroon
- Event: Hacktoberfest 2025
- Hashtags:
#DjangoCameroonHack#Hacktoberfest#DjCMRHacktoberfest
- Django Cameroon community
- Hacktoberfest organizers
- DigitalOcean
- All contributors
For questions or issues:
- Open an issue using the appropriate template
- Check CONTRIBUTING.md for guidelines
- Reach out to the Django Cameroon community
Built with Django and open-source love by the Django Cameroon community