diff --git a/core/__pycache__/urls.cpython-311.pyc b/core/__pycache__/urls.cpython-311.pyc index 1f807fa..2f66fe0 100644 Binary files a/core/__pycache__/urls.cpython-311.pyc and b/core/__pycache__/urls.cpython-311.pyc differ diff --git a/core/__pycache__/views.cpython-311.pyc b/core/__pycache__/views.cpython-311.pyc index 6867ddf..2adf152 100644 Binary files a/core/__pycache__/views.cpython-311.pyc and b/core/__pycache__/views.cpython-311.pyc differ diff --git a/core/templates/base.html b/core/templates/base.html index 788576e..23b5a69 100644 --- a/core/templates/base.html +++ b/core/templates/base.html @@ -1,11 +1,20 @@ - + - {% block title %}Knowledge Base{% endblock %} - {% block head %}{% endblock %} - - + + {% block title %}Visa.ai{% endblock %} + + + + + + + + {% block content %}{% endblock %} - - + + + + + \ No newline at end of file diff --git a/core/templates/core/index.html b/core/templates/core/index.html index 0a3f404..5863a31 100644 --- a/core/templates/core/index.html +++ b/core/templates/core/index.html @@ -1,154 +1,91 @@ -{% extends "base.html" %} +{% extends 'base.html' %} +{% load static %} -{% block title %}{{ project_name }}{% endblock %} - -{% block head %} -{% if project_description %} - - - -{% endif %} -{% if project_image_url %} - - -{% endif %} - - - - -{% endblock %} +{% block title %}Visa.ai | AI-Powered Visa Counselor{% endblock %} {% block content %}
-
-

Analyzing your requirements and generating your app…

-
- Loading… -
-

AppWizzy AI is collecting your requirements and applying the first changes.

-

This page will refresh automatically as the plan is implemented.

-

- Runtime: Django {{ django_version }} · Python {{ python_version }} - — UTC {{ current_time|date:"Y-m-d H:i:s" }} -

-
+ +
+
+

Your AI-Powered Guide to Global Education

+

Making informed decisions about studying abroad has never been easier. Compare countries, find programs, and get AI-driven advice for your application.

+
+
+ + +
+
+
+
+
+

Country Comparison Tool

+

Select two or more countries to compare key metrics for international students.

+
+ {% csrf_token %} +
+ + +
Hold Ctrl (or Cmd on Mac) to select multiple countries.
+
+
+ +
+
+
+
+
+ + {% if comparison_results %} +
+

Comparison Results

+
+
+ + + + + {% for result in comparison_results %} + + {% endfor %} + + + + + + {% for result in comparison_results %} + + {% endfor %} + + + + {% for result in comparison_results %} + + {% endfor %} + + + + {% for result in comparison_results %} + + {% endfor %} + + + + {% for result in comparison_results %} + + {% endfor %} + + +
Metric{{ result.country }}
Average Tuition{{ result.avg_tuition }}
Annual Living Costs{{ result.living_costs }}
Post-Study Work Visa{{ result.post_study_visa }}
Permanent Residency Pathway{{ result.pr_pathway }}
+
+
+
+ {% endif %} +
+
- -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/core/urls.py b/core/urls.py index 6299e3d..332eff0 100644 --- a/core/urls.py +++ b/core/urls.py @@ -1,7 +1,9 @@ from django.urls import path -from .views import home +from django.urls import path + +from .views import index urlpatterns = [ - path("", home, name="home"), + path("", index, name="index"), ] diff --git a/core/views.py b/core/views.py index c9aed12..2b00ea6 100644 --- a/core/views.py +++ b/core/views.py @@ -1,25 +1,60 @@ -import os -import platform - -from django import get_version as django_version from django.shortcuts import render -from django.utils import timezone +# Mock data for the country comparison +MOCK_COUNTRY_DATA = { + 'CA': { + 'country': 'Canada', + 'avg_tuition': '$15,000 - $35,000 CAD', + 'living_costs': '$15,000 - $20,000 CAD/year', + 'post_study_visa': 'Up to 3 years (PGWP)', + 'pr_pathway': 'Strong (Express Entry, PNP)', + }, + 'AU': { + 'country': 'Australia', + 'avg_tuition': '$25,000 - $45,000 AUD', + 'living_costs': '$21,041 AUD/year (minimum)', + 'post_study_visa': '2-4 years (TGV)', + 'pr_pathway': 'Moderate (Points-based system)', + }, + 'GB': { + 'country': 'United Kingdom', + 'avg_tuition': '£15,000 - £38,000', + 'living_costs': '£12,000 - £15,000/year', + 'post_study_visa': '2 years (Graduate Route)', + 'pr_pathway': 'Limited (Skilled Worker Visa)', + }, + 'US': { + 'country': 'United States', + 'avg_tuition': '$28,000 - $55,000 USD', + 'living_costs': '$15,000 - $25,000 USD/year', + 'post_study_visa': '1-3 years (OPT)', + 'pr_pathway': 'Difficult (H-1B lottery)', + }, + 'DE': { + 'country': 'Germany', + 'avg_tuition': 'Often free at public universities', + 'living_costs': '€11,208/year (minimum)', + 'post_study_visa': '18 months (Job Seeker Visa)', + 'pr_pathway': 'Good (EU Blue Card)', + } +} -def home(request): - """Render the landing screen with loader and environment details.""" - host_name = request.get_host().lower() - agent_brand = "AppWizzy" if host_name == "appwizzy.com" else "Flatlogic" - now = timezone.now() +AVAILABLE_COUNTRIES = [ + {'code': 'CA', 'name': 'Canada'}, + {'code': 'AU', 'name': 'Australia'}, + {'code': 'GB', 'name': 'United Kingdom'}, + {'code': 'US', 'name': 'United States'}, + {'code': 'DE', 'name': 'Germany'}, +] + +def index(request): + comparison_results = [] + if request.method == 'POST': + selected_countries = request.POST.getlist('countries') + comparison_results = [MOCK_COUNTRY_DATA[code] for code in selected_countries if code in MOCK_COUNTRY_DATA] context = { - "project_name": "New Style", - "agent_brand": agent_brand, - "django_version": django_version(), - "python_version": platform.python_version(), - "current_time": now, - "host_name": host_name, - "project_description": os.getenv("PROJECT_DESCRIPTION", ""), - "project_image_url": os.getenv("PROJECT_IMAGE_URL", ""), + 'available_countries': AVAILABLE_COUNTRIES, + 'comparison_results': comparison_results, } - return render(request, "core/index.html", context) + return render(request, "core/index.html", context) \ No newline at end of file diff --git a/static/css/custom.css b/static/css/custom.css new file mode 100644 index 0000000..8bca00c --- /dev/null +++ b/static/css/custom.css @@ -0,0 +1,101 @@ +/* Visa.ai Custom Styles */ + +:root { + --primary-color: #0A2540; + --accent-color: #00D4B3; + --background-color: #F6F9FC; + --text-color: #333; + --heading-font: 'Poppins', sans-serif; + --body-font: 'Lato', sans-serif; +} + +body { + font-family: var(--body-font); + background-color: var(--background-color); + color: var(--text-color); +} + +h1, h2, h3, h4, h5, h6 { + font-family: var(--heading-font); + font-weight: 600; +} + +.btn-primary { + background-color: var(--accent-color); + border-color: var(--accent-color); + font-weight: 600; + padding: 0.75rem 1.5rem; + border-radius: 0.5rem; + transition: all 0.3s ease; +} + +.btn-primary:hover { + background-color: #00bfa5; + border-color: #00bfa5; + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); +} + +.hero-section { + background: linear-gradient(135deg, var(--primary-color), #1e3a5f); + color: white; + padding: 6rem 0; + text-align: center; +} + +.hero-section h1 { + font-size: 3.5rem; + font-weight: 700; +} + +.hero-section p { + font-size: 1.25rem; + max-width: 600px; + margin: 1rem auto; +} + +.comparison-section { + padding: 4rem 0; +} + +.comparison-form { + background: white; + padding: 2rem; + border-radius: 0.75rem; + box-shadow: 0 8px 24px rgba(0, 0, 0, 0.05); +} + +.comparison-results { + margin-top: 3rem; +} + +.comparison-table { + background: white; + border-radius: 0.75rem; + overflow: hidden; + box-shadow: 0 8px 24px rgba(0, 0, 0, 0.05); +} + +.comparison-table th { + background-color: var(--primary-color); + color: white; + font-weight: 600; +} + +.comparison-table .table-group-divider { + border-top-color: #d1d9e6; +} + +.comparison-table td, .comparison-table th { + vertical-align: middle; + padding: 1.25rem 1rem; +} + +.form-label { + font-weight: 600; + font-family: var(--heading-font); +} + +.form-select { + min-height: 400px; +}