Skip to content

abhit10/Skillora

Repository files navigation

Skillora

Skillora is a full-stack web application that connects learners, instructors, and companies on one platform. Users can browse courses, enroll and track progress, apply for jobs and internships, and manage content through role-based dashboards.

Built as a portfolio project to demonstrate end-to-end web development with Django.


Live Demo

https://skillora-ojbz.onrender.com

Free-tier hosting may take a moment to wake up on first visit.


Key Features

For Students

  • Browse and filter courses by category, level, and skills
  • Enroll in courses, track progress, and view course materials
  • Submit assignments and download certificates
  • Apply for jobs and internships
  • Manage cart, checkout, and payment flow
  • Build a placement profile with resume and skills

For Teachers

  • Create and manage courses with syllabus, pricing, and media
  • Upload course materials (notes, files, videos, YouTube embeds)
  • Create assignments, grade submissions, and post announcements
  • Schedule live classes and track student progress

For Companies

  • Post job listings and manage applications
  • Publish internships and industrial training opportunities
  • Upload Excel data and generate recruitment reports
  • Access company dashboard with placement analytics

Platform

  • Role-based authentication (Student, Teacher, Company)
  • Django admin panel for content management
  • Contact form with admin review
  • Responsive UI with Bootstrap

Tech Stack

Layer Technologies
Backend Python, Django 4.2
Database SQLite (local), PostgreSQL (production)
Frontend HTML, CSS, Bootstrap, JavaScript
Auth Django built-in authentication
Media Pillow
Config python-decouple
Deployment Gunicorn, Whitenoise, Render

Project Structure

Skillora/
├── skillora_project/     # Django settings, URLs, WSGI/ASGI
├── skillora_app/         # Models, views, forms, admin, migrations
├── templates/            # HTML templates
├── staticfiles/          # CSS, JS, images, libraries
├── assets/               # SCSS sources and development assets
├── docs/                 # Deployment and project docs
├── scripts/              # Setup utilities
├── build.sh              # Render build script
├── render.yaml           # Render deployment config
├── requirements.txt
└── manage.py

Getting Started

Prerequisites

  • Python 3.8+
  • pip

1. Clone the repository

git clone https://github.com/abhit10/Skillora.git
cd Skillora

2. Create and activate a virtual environment

Windows

python -m venv venv
venv\Scripts\activate

macOS / Linux

python -m venv venv
source venv/bin/activate

3. Install dependencies

pip install -r requirements.txt

4. Environment variables

Create a .env file in the project root:

SECRET_KEY=your-secret-key-here
DEBUG=True
ALLOWED_HOSTS=127.0.0.1,localhost

For production, also set:

DEBUG=False
DATABASE_URL=your-postgresql-connection-string
ALLOWED_HOSTS=your-domain.com

5. Set up the database

python manage.py migrate
python manage.py createsuperuser

6. Run the development server

python manage.py runserver

Optional: Load Sample Data

The project includes Django management commands for demo data:

python manage.py load_sample_data
python manage.py create_sample_assignments
python manage.py create_internship_sample_data
python manage.py create_company_sample_data

Main Routes

Page URL
Home /
Courses /courses/
Jobs /jobs/
Internships /internships/
About /about/
Contact /contact/
Login / Signup /login/, /signup/
Student Dashboard /student/
Teacher Dashboard /teacher/
Company Dashboard /company/
Admin /admin/

Deployment

This project is configured for Render using render.yaml.

  • Build command: ./build.sh
  • Start command: gunicorn skillora_project.wsgi:application --bind 0.0.0.0:$PORT

Production setup:

  1. Connect the GitHub repository to Render
  2. Set environment variables (SECRET_KEY, DEBUG, DATABASE_URL, ALLOWED_HOSTS)
  3. Deploy using the included render.yaml blueprint

See docs/DEPLOYMENT.md for more details.


What I Built

  • Designed and implemented the full Django backend with 20+ models
  • Built role-based dashboards for students, teachers, and companies
  • Implemented course enrollment, cart, checkout, and assignment workflows
  • Created internship and job application systems with status tracking
  • Configured static file serving with Whitenoise and production deployment on Render
  • Structured templates, static assets, and admin workflows for content management

Author

AbhitGitHub: @abhit10

Portfolio project showcasing full-stack web development with Python and Django.