Factify

Factify Welcome to My page Content Creator

Here are five excellent free text-to-speech (TTS) websites that university students can utilize for studying, accessibil...
19/11/2025

Here are five excellent free text-to-speech (TTS) websites that university students can utilize for studying, accessibility, or reviewing written content:

​NaturalReader Online: Offers a highly natural-sounding voice with various language options. It allows users to upload documents, paste text, and listen, making it great for reviewing essays or reading textbooks.

​Google Text-to-Speech: Integrated into many Google products (like Google Translate or Google Docs accessibility features), it provides clear and reliable speech output in numerous languages directly from text.

​VoiceMaker.in: A web-based tool that provides a good selection of AI voices, languages, and even options to adjust speech speed and pitch, allowing for customized listening experiences.

​TTSReader.com: A simple and straightforward online TTS tool that reads text aloud directly from the browser, supporting multiple languages and offering a clean interface perfect for quick use.

​Free TTS: Offers high-quality, natural-sounding voice generation from text, supporting various languages and allowing users to convert text into MP3 files for offline listening, which is great for on-the-go study.

Here are five excellent free video editing websites that university students can use for their projects, presentations, ...
18/11/2025

Here are five excellent free video editing websites that university students can use for their projects, presentations, or creative endeavors:

DaVinci Resolve (Desktop - Free Version): While a desktop application, its free version is incredibly powerful, offering professional-grade editing, color correction, visual effects, and audio post-production. It's often considered industry standard for many professionals.

Clipchamp: A web-based video editor from Microsoft that offers a user-friendly interface with essential editing tools, templates, stock media, and direct export options, great for quick edits.

Kapwing: An online collaborative video editing platform that provides tools for trimming, resizing, adding text, subtitles, and even creating memes, all within your browser.

FlexClip: An easy-to-use online video maker with a vast library of templates, stock footage, and music, enabling students to create professional-looking videos quickly without prior experience.

HitFilm Express (Desktop - Free Version): Another robust desktop editor with a free version that provides a powerful set of tools for editing, visual effects, and compositing, suitable for more ambitious projects.

Here are five excellent presentation creator websites that university students can utilize for their academic needs:​Can...
10/11/2025

Here are five excellent presentation creator websites that university students can utilize for their academic needs:

​Canva: An incredibly popular and user-friendly online design tool offering thousands of customizable templates, graphics, and stock photos, making it easy to create visually appealing presentations quickly.

​Prezi: Known for its dynamic, non-linear presentation format that allows presenters to zoom in and out of content, creating an engaging and interactive experience different from traditional slide-based tools.

​Google Slides: A free, web-based presentation program part of Google's office suite, offering easy collaboration, autosaving, and seamless integration with other Google services.

​Microsoft PowerPoint (Online/Web Version): The classic presentation software, available online for free with a Microsoft account, providing robust features and familiarity for creating professional-grade slides.

​Beautiful.ai: An AI-powered presentation maker that helps students design stunning slides effortlessly by automatically applying design best practices and offering smart templates that adapt to content.

Here are five useful paraphrasing tools that can assist university students in their academic writing:​QuillBot: Known f...
07/11/2025

Here are five useful paraphrasing tools that can assist university students in their academic writing:

​QuillBot: Known for its AI-powered paraphrasing with multiple modes (Standard, Fluency, Creative, Expand, Shorten, Custom), and integrated grammar checking and summarization features.

​Turnitin (Similarity Report): While primarily a plagiarism checker, its similarity report often highlights sections that need rephrasing, guiding students on where to apply paraphrasing techniques.

​Grammarly (Premium): Offers sophisticated rephrasing suggestions, helping students improve sentence structure, clarity, and conciseness, reducing accidental plagiarism.

​Paraphrasingtool.ai: Provides different paraphrasing styles, including academic and creative, to help students generate unique content while maintaining the original meaning.

​SmallSEOTools Paraphrasing Tool: A straightforward online tool that helps rewrite text to avoid plagiarism and improve readability, offering a quick solution for rephrasing sentences and paragraphs.

Here's another list of five excellent photo editing tools, ranging from professional suites to user-friendly options:​Dx...
06/11/2025

Here's another list of five excellent photo editing tools, ranging from professional suites to user-friendly options:

​DxO PhotoLab: Renowned for its exceptional RAW processing, prime noise reduction, and optical corrections, making it a favorite for image quality purists.

​Luminar Neo: An AI-powered editor known for its innovative tools like Sky AI, Structure AI, and Relight AI, offering creative enhancements with ease.

​Corel PaintShop Pro: A feature-rich, affordable alternative to Photoshop, providing a comprehensive set of editing, retouching, and graphic design tools without a subscription.

​Skylum Aurora HDR: Specializes in creating stunning High Dynamic Range images, offering advanced tone mapping and detail enhancement for vivid results.

​Polarr: A versatile cross-platform photo editor known for its powerful AI filters, customizable tools, and user-friendly interface, great for quick yet impactful edits.

Here are five of the top photo editing tools, widely used by professionals and enthusiasts:​Adobe Photoshop: The industr...
04/11/2025

Here are five of the top photo editing tools, widely used by professionals and enthusiasts:

​Adobe Photoshop: The industry standard for deep image manipulation, creative compositing, and graphic design.

​Adobe Lightroom Classic: Excellent for workflow management, batch editing, and comprehensive raw file processing for photographers.

​Capture One: Highly regarded by professional photographers for its superior color grading, raw processing engine, and tethered shooting capabilities.

​Affinity Photo: A powerful, cost-effective alternative to Photoshop, offering professional-grade features without a subscription model.

​GIMP (GNU Image Manipulation Program): The best professional-level, free, and open-source alternative to proprietary software like Photoshop.

09/09/2025

I create modern, creative, and professional logos that make your brand stand out. Unique designs tailored to your business identity, with high - quality and versatile files for any platform. ✨

HTML Code ⚡      Student Registration            :root{      --bg: ; --card: ; --muted: ; --accent: ; --danger: ;      -...
08/09/2025

HTML Code ⚡






Student Registration




:root{
--bg: ; --card: ; --muted: ; --accent: ; --danger: ;
--success: ; --glass: rgba(37,99,235,0.06);
}
*{box-sizing:border-box}
body{font-family:Inter, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial; margin:0; background:linear-gradient(180deg,var(--bg), ); color: }
.container{max-width:1100px; margin:28px auto; padding:20px}
header{display:flex; align-items:center; justify-content:space-between; gap:16px}
h1{font-size:1.4rem; margin:0}
.card{background:var(--card); border-radius:12px; box-shadow:0 6px 18px rgba(15,23,42,0.06); padding:18px}

/* form layout */
form .grid{display:grid; grid-template-columns:repeat(2,1fr); gap:12px}
label{display:block; font-size:0.85rem; color:var(--muted); margin-bottom:6px}
input[type=text], input[type=email], input[type=date], input[type=tel], select, textarea{width:100%; padding:10px 12px; border:1px solid ; border-radius:8px; background: ; font-size:0.95rem}
textarea{min-height:80px; resize:vertical}
.full{grid-column:1/-1}
.actions{display:flex; gap:8px; margin-top:12px}
button{border:0; padding:10px 14px; border-radius:8px; cursor:pointer; font-weight:600}
.btn-primary{background:var(--accent); color:white}
.btn-ghost{background:transparent; border:1px solid }
.btn-danger{background:var(--danger); color:white}

/* table */
.toolbar{display:flex; justify-content:space-between; gap:12px; margin-top:16px; align-items:center}
.search{display:flex; gap:8px; align-items:center}
.table-wrap{overflow:auto; margin-top:12px}
table{width:100%; border-collapse:collapse; min-width:800px}
th, td{padding:10px 12px; text-align:left; border-bottom:1px solid }
th{font-size:0.85rem; color:var(--muted); position:sticky; top:0; background:linear-gradient(transparent, rgba(255,255,255,0.6))}
td small{display:block; color:var(--muted); font-size:0.85rem}
.pill{display:inline-block; padding:6px 8px; border-radius:999px; font-size:0.8rem}
.edit, .del{background:transparent; border:1px solid ; padding:6px 8px; border-radius:8px; cursor:pointer}

/* responsive */
(max-width:800px){
form .grid{grid-template-columns:1fr}
.container{padding:12px}
}

/* small helpers */
.muted{color:var(--muted); font-size:0.9rem}
.empty{padding:28px; text-align:center; color:var(--muted)}

/* simple modal */
.modal-backdrop{position:fixed; inset:0; background:rgba(2,6,23,0.45); display:none; align-items:center; justify-content:center}
.modal{background:var(--card); width:720px; max-width:95%; border-radius:12px; padding:18px}
.row{display:flex; gap:8px}






Student Registration
Register students and manage the registry (stored locally in your browser)


Export CSV
Import CSV








First name *



Last name *




Student ID *



Email *




Date of birth



Phone




Course *

Choose course
BSc Computer Science
BSc Information Systems
Diploma in IT
Higher National Diploma



Year *

Choose year
1
2
3
4




Address





Register Student
Clear

Show entries:

10
25
50










Clear

Total students: 0






#
Student ID
Name
Email
Course / Year
Phone
Actions



No students registered yet.








Edit Student



First name



Last name



Student ID



Email



Course

BSc Computer Science
BSc Information Systems
Diploma in IT
Higher National Diploma



Year

1
2
3
4



Address




Cancel
Save








// Simple client-side "student registry" using localStorage
const STORAGE_KEY = 'students_registry_v1';

// elements
const form = document.getElementById('regForm');
const tbody = document.getElementById('tbody');
const totalEl = document.getElementById('total');
const searchInput = document.getElementById('search');
const clearSearch = document.getElementById('clearSearch');
const pageSizeSelect = document.getElementById('pageSize');

let students = load();
let editingIndex = null;

function load(){
try{
const raw = localStorage.getItem(STORAGE_KEY);
return raw ? JSON.parse(raw) : [];
}catch(e){
console.error('Failed to load students', e);
return [];
}
}
function save(){
localStorage.setItem(STORAGE_KEY, JSON.stringify(students));
render();
}

function validateUniqueStudentId(id, ignoreIndex = -1){
return students.findIndex((s,i)=> s.studentId.toLowerCase()===id.toLowerCase() && i!==ignoreIndex) === -1;
}

form.addEventListener('submit', e=>{
e.preventDefault();
const data = new FormData(form);
const student = Object.fromEntries(data.entries());
student.firstName = student.firstName.trim();
student.lastName = student.lastName.trim();
student.studentId = student.studentId.trim();
student.email = student.email.trim();
student.address = student.address.trim();

if(!validateUniqueStudentId(student.studentId)){
alert('Student ID already exists. Use a unique ID.');
return;
}

student.createdAt = new Date().toISOString();
students.unshift(student); // newest first
save();
form.reset();
alert('Student registered successfully.');
});

function render(){
// filter
const q = searchInput.value.trim().toLowerCase();
const filtered = students.filter(s=>{
if(!q) return true;
return (s.firstName + ' ' + s.lastName + ' ' + s.studentId + ' ' + s.email + ' ' + s.course).toLowerCase().includes(q);
});

totalEl.textContent = filtered.length;

// pagination (simple)
const pageSize = parseInt(pageSizeSelect.value,10) || 10;
const rows = filtered.slice(0, pageSize);

if(rows.length===0){
tbody.innerHTML = 'No students found.'
return;
}

tbody.innerHTML = rows.map((s, idx)=>{
const fullName = s.firstName + ' ' + s.lastName;
return `
${idx+1}
${escapeHtml(s.studentId)}${new Date(s.createdAt).toLocaleString()}
${escapeHtml(fullName)}
${escapeHtml(s.email)}
${escapeHtml(s.course)} Year ${escapeHtml(s.year)}
${escapeHtml(s.phone||'—')}

Edit
Delete

`
}).join('\n');

// attach handlers
Array.from(document.querySelectorAll('.edit')).forEach(b=>b.addEventListener('click', onEdit));
Array.from(document.querySelectorAll('.del')).forEach(b=>b.addEventListener('click', onDelete));
}

function getGlobalIndex(item){
// find index in students array (global index)
return students.findIndex(s=> s.studentId === item.studentId && s.email === item.email && s.createdAt === item.createdAt);
}

function onEdit(e){
const idx = Number(e.currentTarget.dataset.index);
if(idx showModal(false));

function showModal(v){
modal.style.display = v ? 'flex' : 'none';
}

editForm.addEventListener('submit', e=>{
e.preventDefault();
if(editingIndex === null) return;
const updated = {
...students[editingIndex],
firstName: document.getElementById('e_firstName').value.trim(),
lastName: document.getElementById('e_lastName').value.trim(),
studentId: document.getElementById('e_studentId').value.trim(),
email: document.getElementById('e_email').value.trim(),
course: document.getElementById('e_course').value,
year: document.getElementById('e_year').value,
address: document.getElementById('e_address').value.trim()
};

// ensure unique id
if(!validateUniqueStudentId(updated.studentId, editingIndex)){
alert('Student ID conflicts with another record. Use a unique ID.');
return;
}

students[editingIndex] = updated;
save();
showModal(false);
alert('Saved.');
});

// search handlers
searchInput.addEventListener('input', ()=> render());
clearSearch.addEventListener('click', ()=>{ searchInput.value=''; render(); });
pageSizeSelect.addEventListener('change', ()=> render());

// export csv
document.getElementById('exportCsv').addEventListener('click', ()=>{
if(students.length===0){ alert('No students to export.'); return; }
const headings = ['studentId','firstName','lastName','email','dob','phone','course','year','address','createdAt'];
const rows = students.map(s=> headings.map(h=> csvSafe(s[h]||'')).join(','));
const csv = [headings.join(','), ...rows].join('\n');
const blob = new Blob([csv], {type:'text/csv'});
const url = URL.createObjectURL(blob);
const a = document.createElement('a'); a.href = url; a.download = 'students.csv'; a.click(); URL.revokeObjectURL(url);
});

// import csv (very forgiving)
document.getElementById('importCsvBtn').addEventListener('click', ()=> document.getElementById('importCsv').click());
document.getElementById('importCsv').addEventListener('change', async (ev)=>{
const file = ev.target.files[0];
if(!file) return;
const text = await file.text();
const lines = text.split(/\r?\n/).filter(Boolean);
if(lines.lengthh.trim());
const newStudents = lines.slice(1).map(l=>{
const vals = l.split(',');
const obj = {};
headers.forEach((h,i)=> obj[h]= vals[i] ? vals[i].trim() : '');
// normalize
obj.firstName = obj.firstName || '';
obj.lastName = obj.lastName || '';
obj.studentId = obj.studentId || ('imp-' + Math.random().toString(36).slice(2,8));
obj.email = obj.email || '';
obj.createdAt = obj.createdAt || new Date().toISOString();
return obj;
});

// avoid duplicates by studentId
const existingIds = new Set(students.map(s=>s.studentId.toLowerCase()));
const inserted = [];
for(const s of newStudents){
if(existingIds.has(s.studentId.toLowerCase())) continue;
students.unshift(s); existingIds.add(s.studentId.toLowerCase()); inserted.push(s);
}
save();
alert(`Imported ${inserted.length} records (duplicates skipped).`);
ev.target.value = null;
});

// utilities
function csvSafe(val){
const s = String(val||'');
if(s.includes(',') || s.includes('"') || s.includes('\n')) return '"' + s.replace(/"/g,'""') + '"';
return s;
}

function escapeHtml(unsafe){
if(!unsafe) return '';
return String(unsafe)
.replace(/&/g, '&')
.replace(//g, '>')
.replace(/"/g, '"')
.replace(/'/g, '& #039;');
}

// initial render
render();

// expose functions for debugging in console
window._students = students;
window._saveStudents = save;




( Done - I created a complete, single-file HTML app called student-registration.html in the canvas. It’s a fully functional, client-side student registration system with these features:

Responsive registration form (fields: first/last name, student ID, email, DOB, phone, course, year, address).

Client-side validation + unique-student-ID check.

Local persistence using localStorage so data remains in your browser.

List view with search, page-size limit, edit and delete (edit uses a modal).

CSV export and CSV import (duplicates skipped).

Simple, clean UI and accessible HTML.

How to use:

Open the file in your browser (double-click the HTML file or drag it into the browser).

Register students using the form - they’ll appear in the table below.

Use Export/Import buttons to move data as CSV.

If you want, I can:

Add server-side submission example (Node/Express) or show how to connect it to Firebase.

Convert the UI into React/Tailwind.

Add role-based fields, ID auto-generation, more validation rules, or printable reports.

Which of those would you like next? )

To create a professional and clean login page, here is some HTML code along with CSS for styling. The HTML sets up the s...
07/09/2025

To create a professional and clean login page, here is some HTML code along with CSS for styling. The HTML sets up the structure with input fields for the username and password, and a link for resetting the password. The CSS styles these elements to look modern and professional.






Login

body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
background-color: ;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
}

.login-container {
background-color: ;
padding: 40px;
border-radius: 12px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
width: 100%;
max-width: 400px;
box-sizing: border-box;
}

.login-container h2 {
text-align: center;
color: #333;
margin-bottom: 24px;
font-size: 28px;
}

.input-group {
margin-bottom: 20px;
}

.input-group label {
display: block;
margin-bottom: 8px;
color: #555;
font-weight: 500;
}

.input-group input {
width: 100%;
padding: 12px;
border: 1px solid ;
border-radius: 8px;
font-size: 16px;
box-sizing: border-box;
}

.input-group input:focus {
border-color: ;
outline: none;
box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.25);
}

.login-button {
width: 100%;
padding: 12px;
background-color: ;
color: ;
border: none;
border-radius: 8px;
font-size: 18px;
font-weight: 600;
cursor: pointer;
transition: background-color 0.3s ease;
}

.login-button:hover {
background-color: ;
}

.reset-password {
text-align: center;
margin-top: 16px;
}

.reset-password a {
color: ;
text-decoration: none;
font-size: 14px;
}

.reset-password a:hover {
text-decoration: underline;
}





Login


Username



Password


Login


Reset Password






Key features of this code:

* Clean Design: The styling uses a modern, flat design with soft shadows and rounded corners for a professional look.
* Accessibility: Input fields have labels and are properly linked using for and id attributes, which is good for accessibility.
* Responsive: The max-width and box-sizing properties ensure the page looks good on various screen sizes.
* Form Structure: The code uses a element with a post method, which is the standard way to handle form data on a server.
To use this, simply copy and paste the entire code into an .html file and open it in your web browser. You can customize the colors, fonts, and sizes by editing the CSS within the tags.

Address

No. 04. B. O. P. 400
Polonnaruwa
51000

Website

Alerts

Be the first to know and let us send you an email when Factify posts news and promotions. Your email address will not be used for any other purpose, and you can unsubscribe at any time.

Share