In October 2024 I started on the Stream English EduCommerce platform.
It is a combination of a learning management system (LMS), an ecommerce shop and a blog/news section.
The LMS hosts YouTube videos and also has the ability to upload videos.

The shop uses Stripe and mainly sells digital downloads, so a secure download area was needed

The news section is a blog that has been created using SEO features and is a way to promote the brand.

Stream English – https://www.streamenglish.co.uk
Claude.ai
I used Claude.ai to help me make a plan of what will be included in the site and to help me through any errors along the way.
- Core Features:
- User authentication and profile management
- Profile page that includes course enrolment, contact form, list of purchases, ability to edit/delete profile etc
- Course management system with video content
- News/blog system
- Content management system with CKEditor integration
- Cloudinary integration for media handling
- Email notification system including account activation, welcome email, password reset, confirmation of order, etc
- Responsive design with Tailwind CSS


- Technical Implementation:
- Django backend with complex models and relationships
- Custom user profiles with progress tracking
- Advanced content management features
- Cloud storage integration
- Email system with templates
- Frontend development with Tailwind CSS
- Docker configuration for deployment
- SEO optimization
- Server setup and configuration
- Secure download area for products
- SSL certificates and security features

- Time Estimation:
- Backend development: 120-160 hours
- Frontend development: 80-100 hours
- Testing and debugging: 40-60 hours
- Deployment setup: 20-30 hours
- Project management: 40-50 hours
Total estimated hours: 320-430 hours
I eventually removed Docker and upgraded the model for in-house media handling.
Deployment/Production
I first attempted adding this project to Render but gave up as it became too difficult. It was much easier (thanks to the help available in the forum) to add it to Railway but you can’t save images and downloads to Railway.
I quickly realised that if I didn’t want to keep using third party services e.g. Cloudinary, AWS and SendGrid, I needed a more comprehensive hosting package.
I wanted everything to be hosted on the actual site. The downloads in the shop, the images, videos etc. I wanted the option of adding external links but also of hosting in-house.
I then moved the site to 20i hosting – VPS Managed hosting. The system was ok and the support was great but there were Django issues that made it challenging.
Finally, move four was to WebHostUK. They host Django and their support is amazing. The site had a little bit of a false start when they offered to migrate it from 20i to the new WebHostUK hosting package. Whoever did that job was shockingly bad, however, I eventually logged in to correct the errors. They were very apologetic.
Fingers crossed WebHostUK is now the permanent home for all my hosting as I took out a reseller account. Only a small one for now that I can keep upgrading as I need more space. So, now I can offer hosting.

Known Bugs
Right now the only section of the site that is not working is the progress tracking. The progress calculations don’t seem to be working – all showing 0%. The method get_course_completion_percentage
might not be getting the right parameters. Right now the calculation is set to track when a whole video is watched but I may need to update that so every few minutes are tracked instead. That is the last thing to work on.
Completing The Project
This is my first Django project outside of my full-stack course and it was a huge undertaking but I am so glad I stuck with it.
Claude.ai – while it needs to be monitored for bad code and over zealous deleting of existing code – has been a brilliant asset.
The next site I build will be the one I will use for my business Djangify @ djangify.com
My aim is to offer to build these bespoke eduCommerce platforms for professionals.