Skip to content

B1llyWL/AstraWilly

Repository files navigation

AstraWilly

This pet project simulates a real ISP website built with Django, mirroring the scale and functionality of a major telecom operator.

Python Django PostgreSQL Redis Celery


Overview

A full‑featured multi‑language website for an internet service provider. Users can explore tariffs, services, vacancies, and news; submit applications; manage their profile; and choose how they want to be contacted. The admin panel gives full control over all content and requests.

🔗 Live demo: astrawilly.pythonanywhere.com


Features

🌍 Multi‑language
German, English, Russian, Dutch, Ukrainian (i18n + locale middleware)
🔐 User accounts
Sign up, sign in, logout, change password, password reset via email
📱 Phone verification
Confirm phone number via email (code sent to user's email with expiry)
🤖 reCAPTCHA protection
Google reCAPTCHA v2 on sensitive forms (e.g., adding a phone number)
💳 Stripe payments
Top up balance using Stripe Checkout (test mode supported)
👤 Personal cabinet
View selected tariffs, services, packages; track application history
📋 Applications
For vacancies, tariffs, individual services, packages, and support
📞 Contact methods
Telegram, Email, Phone call, WhatsApp
💱 Currency support
Auto‑updated exchange rates (Frankfurter.app); show prices in multiple currencies
📍 Location detection
IP‑based country detection + manually added countries (editable in admin)
⚙️ Admin panel
Full control over tariffs, services, vacancies, news, applications, countries, currencies
⏱️ Background tasks
Celery + Redis for notifications, emails, and periodic currency updates
🐘 PostgreSQL
Robust and scalable database
📱 Responsive design
Works perfectly on desktop and mobile

Tech Stack

Area Technologies
Backend Python, Django, Django ORM, Django REST Framework (optional)
Database PostgreSQL (production), SQLite (development)
Task Queue Celery, Redis (broker & cache)
Frontend Django templates, Bootstrap 5, custom CSS
i18n Django internationalization (locale middleware)
Payments Stripe Checkout (test mode)
Geolocation Custom IP‑based detector + manual country list
Currency Frankfurter.app API, requests library
Captcha Google reCAPTCHA v2

Screenshots

Home Page
Home Home1 Homefooter
Languages & Location
Languages Countries
Tariffs
Tariffs Tariffs_1 Tariffs_3 Tariffs_4
Services
Services Services_2 Services_3 Services_4 Services_5
Stocks & Promotions
Stocks_Global Stocks_Germany_Berlin Stocks_Germany_Berlin_details
Support
Support Support_2 Support_3
Vacancies
Vacancies_1 Vacancies Vacancies_3 Vacancies_4
News
News_Global_details
Authentication
Signup Signin Forgot password signout
User Cabinet
My Cabinet MyCab myreq myreqcancel edit_profile
Payment Methods
payment stripe

Installation

1. Clone the repository

git clone https://github.com/B1llyWL/AstraWilly.git
cd AstraWilly