diff --git a/Instructions.pdf b/Instructions.pdf new file mode 100644 index 0000000..073b18a Binary files /dev/null and b/Instructions.pdf differ diff --git a/README.md b/README.md new file mode 100644 index 0000000..f61c96a --- /dev/null +++ b/README.md @@ -0,0 +1,75 @@ +# postgraDB + +##### *NOTE: Ubuntu(16/18) usage is strongly recommended* + +#### A) Package Dependencies: +- python3.X +- pip (reference Python package manager) + + Linux: + + `> python3 -m pip install --user --upgrade pip` + + Windows: + + `> py -m pip --version` +- venv (*should be already installed with python3*) + +1. Inside app folder create a pyton3 virtual enviornment: `> python3 -m venv env` + +2. Activate your virtual environment: `> source env/bin/activate` + +#### B1) Virtual envionment dependencies: +In order to run *db.py* you need to install: + +1. Flask : `pip3 install flask` + +2. sqlalchemy: `pip3 install sqlalchemy` + +3. mysqlclient: `pip3 install mysqlclient` + +__*Note:*__ In case B1 fails you can follow **B2** on which some added dependencies are installed. + +#### B2) Virtual envionment dependencies (Warning: Execute this step only in case B1 fails completely): +1. After sourcing your virtual environment execute: + + pip3 install -r requirements.txt + + +#### C) Skip this section if no errors came up from section B + +- If you got an error `Failed building wheel for sqlalchemy` at step 2 you should run `pip3 install wheel` and then try again from step 2. + +- If you got an error `Failed building wheel for mysqlclient` at step 3 then run the following commands: + + - Install the Python and MySQL development headers and libraries: `sudo apt-get install python-dev default-libmysqlclient-dev` + - If you are using python3 then you need to install python3-dev using the following command: + `sudo apt-get install python3-dev` + - Install from PyPI: `pip install mysqlclient` + - Then continue to section D + + + +#### D) Execute: +0. **Important:** Execute *postgradb.sql* file on your local mysql server in order to install postgraDB as a database on your computer + + `mysql> source /you_path_to_postgradb_sql_file/postgradb.sql` + +1. **Important:** Open *db.py* script and modify `mysql:url` (line:6) by inserting your username and password that you use on your local mysql server: + + `create_engine("mysql://:@localhost/postgradb?host=localhost?port=3306")` + +2. Run `python3 db.py` +3. Open you browser +4. Type `127.0.0.1:5000/` + +--- + +#### Extra: Use case scenarios + +a) In search page user can search universities by uni_id like ("ETH, auth, Duth etc.") + +b) In search page user can search available programs (by domain) using any keyword. Typing "psyc" for example will output "psychology" programs. + + + diff --git a/db.py b/db.py new file mode 100644 index 0000000..31c7c14 --- /dev/null +++ b/db.py @@ -0,0 +1,163 @@ +from flask import Flask, redirect, url_for, request, render_template +from sqlalchemy import create_engine + +app = Flask(__name__) + +engine = create_engine("mysql://admin:password@localhost/postgradb?host=localhost?port=3306") +conn = engine.connect() + + +@app.route('/', methods=['GET']) +def root(): + return redirect(url_for('home')) + +@app.route('/home', methods=['GET']) +def home(): + return render_template('home.html') + + +@app.route('/search_page', methods=['GET']) +def search_page(): + return render_template('search.html') + + +@app.route('/search_uni',methods = ['POST', 'GET']) +def search_uni(): + if request.method == 'POST': + uni = request.form['uni'] + #domain = request.form['domain'] + result = conn.execute("SELECT * FROM University WHERE universityID='" + uni +"'").fetchall() + #print(result) + if(len(result)==0): + return redirect(url_for('search_page')) + return redirect(url_for('universities', name=result[0].universityID)) + else: + uni = request.args.get('uni') + domain = request.args.get('domain') + return redirect(url_for('universities',name = uni)) + + + + +@app.route('/universities/') +def universities(name): + + #load data + uni = conn.execute("SELECT * FROM University WHERE universityID='" + name +"'").fetchall() + uni_programs= conn.execute("SELECT * FROM programs_by_unis WHERE universityID='" + name +"'").fetchall() + + + #parse uni data + uni_name = uni[0].name + uni_rank = uni[0].ranking + uni_city = uni[0].city + uni_country = uni[0].country + + + programs = [None] *len(uni_programs) + temp_ids = [None] * len(uni_programs) + ids = [None] * len(uni_programs) + + + #parse uni_programs data + for msc in range(len(uni_programs)): + programs[msc]=uni_programs[msc].Msc + + + for program_ids in range(len(uni_programs)): + join_dept_program="SELECT Program.name, Department.university_id, Program.programID FROM postgradb.Program join postgradb.Department on department_id= departmentID" + program_name_to_id="SELECT q1.programID FROM (%s)as q1 where q1.university_id='%s' and q1.name ='%s'" %(join_dept_program, name, programs[program_ids]) + temp_ids[program_ids]= conn.execute(program_name_to_id).first() + + + #convet program ids (from sqlalchemy.row.proxy type) in str + for i in range(len(uni_programs)): + ids[i]=(temp_ids[i][0]) + + print(ids[0]) + + return render_template('university.html', uni_country=uni_country ,uni_name=uni_name, uni_rank=uni_rank, uni_city=uni_city, programs=programs, program_ids=ids ) + + +@app.route('/search_domain',methods = ['POST', 'GET']) +def search_domain(): + if request.method == 'POST': + domain = request.form['domain'] + result = conn.execute("SELECT * FROM programs_by_unis WHERE Msc like'%%"+domain+"%%'").fetchall() + #result = conn.execute("SELECT * FROM University WHERE universityID='" + uni +"'").fetchall() + + programs = [None] *len(result) + program_plus_uni=[None] *len(result) + uni_id=[None] *len(result) + temp_ids = [None] * len(result) + ids = [None] * len(result) + + + #parse uni_programs data + for msc in range(len(result)): + programs[msc]=result[msc].Msc + program_plus_uni[msc]=programs[msc]+" at "+ result[msc].University + uni_id[msc]=result[msc].universityID + + for program_ids in range(len(result)): + join_dept_program="SELECT Program.name, Department.university_id, Program.programID FROM postgradb.Program join postgradb.Department on department_id= departmentID" + program_name_to_id="SELECT q1.programID FROM ("+join_dept_program+") as q1 where q1.university_id='"+uni_id[program_ids]+"' and q1.name like '%%"+domain+"%%'" + temp_ids[program_ids]= conn.execute(program_name_to_id).first() + + for i in range(len(result)): + ids[i]=(temp_ids[i][0]) + + + print(type(program_plus_uni)) + #print(" !!!!!!!!!!!!!!!!!!!!!!! \n"+ result[0].Msc) + return render_template('domain_programs.html', programs=program_plus_uni, program_ids=ids ) + #return redirect(url_for('domains', name=result[0].universityID)) + + + +@app.route('/motivation_page', methods=['GET']) +def motivation_page(): + return render_template('motivation.html') + +@app.route('/developers', methods=['GET']) +def developers(): + return render_template('developers.html') + +@app.route('/programs/', methods=['GET']) +def programs(program): + program = conn.execute("SELECT * FROM Program WHERE programID='" + program +"'").fetchall() + + + #parse program data + program_name=program[0].name + duration=program[0].duration + num_of_students=program[0].number_of_students + deadline=program[0].applications_deadline + fees=program[0].fees + description=program[0].description + attendancy=program[0].attendancy + + print(program_name) + + #get Univeristy from Department table + join_dept_program="SELECT Department.university_id, Program.programID FROM postgradb.Program join postgradb.Department on department_id= departmentID" + + query="select q1.university_id from (%s) as q1 where q1.programID='%s'" %(join_dept_program, program[0].programID) + program_university=conn.execute(query).first() + + uni_id= program_university[0] + + uni_query="SELECT name,city FROM postgradb.University where universityID='%s'; "%(uni_id) + uni=conn.execute(uni_query).first() + + uni_name=uni[0] + uni_city=uni[1] + + + #print(program_name) + return render_template('program.html', prog_name=program_name, dur=duration, num_of_students=num_of_students, deadline=deadline , fees=fees, description=description , uni_name=uni_name, uni_city=uni_city, attendancy=attendancy) + + + +if __name__ == '__main__': + app.run(debug = True) diff --git a/postgradb.sql b/postgradb.sql new file mode 100644 index 0000000..95bf99c --- /dev/null +++ b/postgradb.sql @@ -0,0 +1,475 @@ +-- MariaDB dump 10.17 Distrib 10.4.10-MariaDB, for debian-linux-gnu (x86_64) +-- +-- Host: localhost Database: postgradb +-- ------------------------------------------------------ +-- Server version 10.4.10-MariaDB-1:10.4.10+maria~xenial-log + +DROP SCHEMA IF EXISTS `postgradb`; +CREATE SCHEMA `postgradb`; +USE `postgradb`; + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `Course` +-- + +DROP TABLE IF EXISTS `Course`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Course` ( + `courseID` char(6) NOT NULL, + `name` varchar(36) NOT NULL, + `ects` int(10) unsigned NOT NULL, + PRIMARY KEY (`courseID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Course` +-- + +LOCK TABLES `Course` WRITE; +/*!40000 ALTER TABLE `Course` DISABLE KEYS */; +INSERT INTO `Course` VALUES ('DM9471','Data Mining',4),('EN2345','English Language',5),('FC3938','Financial Calculus',2),('LA4561','Business Associations',4),('LA7659','Immigration Law and Policy',3),('LA7688','Conflict of Laws',3),('ML1339','Applied Machine Learning',5),('TH9803','Statistical Theory',3); +/*!40000 ALTER TABLE `Course` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Department` +-- + +DROP TABLE IF EXISTS `Department`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Department` ( + `departmentID` int(11) NOT NULL, + `name` varchar(36) NOT NULL, + `webpage` varchar(45) DEFAULT NULL, + `academic_field` varchar(36) NOT NULL, + `university_id` varchar(6) NOT NULL, + PRIMARY KEY (`departmentID`,`university_id`), + KEY `university_id_idx` (`university_id`), + CONSTRAINT `university_id` FOREIGN KEY (`university_id`) REFERENCES `University` (`universityID`) ON DELETE NO ACTION ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Department` +-- + +LOCK TABLES `Department` WRITE; +/*!40000 ALTER TABLE `Department` DISABLE KEYS */; +INSERT INTO `Department` VALUES (38,'Psychology','unic.ac.cy','Philosophy','UNIC'),(3,'Electrical & Computer Engineering','ethz.ch','Engineering','ETH'),(7,'Informatics','csd.auth.gr','Sciences','AUTH'),(18,'Electrical & Computer Engineering','nanoeng.twente.nl','Engineering','UT'),(32,'Mathematics','maths.uow.edu.au','Sciences','UOW'),(34,'Psychology','psy.essex.ac.uk','Philosophy','ESSEX'),(67,'Mathematics','maths.ox.ac.uk','Sciences','OX'),(89,'Electrical & Computer Engineering','ee.duth.gr','Engineering','DUTH'),(94,'Law','law.eur.nl','Law','EUR'),(95,'Mechanical Engineering','meng.auth.gr','Engineering','AUTH'),(101,'Law','law.auth.gr','Law','AUTH'),(107,'Management','economics.marburg.de','Economics','MAR'),(121,'Dentistry','med.kuleuven.be','Health Sciences','KU'),(184,'Electrical & Computer Engineering','ee.auth.gr','Engineering','AUTH'),(230,'History & Archaeology','hist.auth.gr','Philosophy','AUTH'); +/*!40000 ALTER TABLE `Department` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Likes` +-- + +DROP TABLE IF EXISTS `Likes`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Likes` ( + `user__id` int(11) NOT NULL, + `ID_program` char(5) NOT NULL, + PRIMARY KEY (`user__id`,`ID_program`), + KEY `program_id_idx` (`ID_program`), + CONSTRAINT `ID_program` FOREIGN KEY (`ID_program`) REFERENCES `Program` (`programID`) ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT `user__id` FOREIGN KEY (`user__id`) REFERENCES `User` (`userID`) ON DELETE NO ACTION ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Likes` +-- + +LOCK TABLES `Likes` WRITE; +/*!40000 ALTER TABLE `Likes` DISABLE KEYS */; +INSERT INTO `Likes` VALUES (23,'CP234'),(34,'OD781'),(234,'LC239'),(234,'LE177'),(234,'LP179'),(670,'CS212'),(670,'EE004'),(670,'RB592'),(4667,'CP234'); +/*!40000 ALTER TABLE `Likes` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Program` +-- + +DROP TABLE IF EXISTS `Program`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Program` ( + `programID` char(5) NOT NULL, + `name` varchar(36) NOT NULL, + `duration` int(10) unsigned NOT NULL, + `number_of_students` int(10) unsigned DEFAULT NULL, + `attendancy` enum('Mandatory','Optional','Distance Learning') DEFAULT 'Mandatory', + `applications_deadline` char(10) DEFAULT NULL, + `fees` int(10) unsigned DEFAULT 0, + `description` varchar(500) DEFAULT NULL, + `department_id` int(11) NOT NULL, + PRIMARY KEY (`programID`), + KEY `department_id_idx` (`department_id`), + CONSTRAINT `department_id` FOREIGN KEY (`department_id`) REFERENCES `Department` (`departmentID`) ON DELETE NO ACTION ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Program` +-- + +LOCK TABLES `Program` WRITE; +/*!40000 ALTER TABLE `Program` DISABLE KEYS */; +INSERT INTO `Program` VALUES ('MG109','Management',4,18,'Distance Learning','25-04-2020','17000','In today’s fast-changing business environment, there are increasing demands for business leaders who are international, digital, and effective. The Master in Management is designed to develop the skills needed to analyse complex strategic and operational management issues within a global context.',107),('CP342','Criminal Psychology',2,10,'Mandatory','23-02-2020',9000,'Some people commit crime while others lead law abiding lives. Why? On this program you’ll examine the nature of crime, investigating the impact it has on society – and what we can do about it. Moreover, criminal psychology is concerned with analysing and improving the criminal justice system; enhancing police interviewing, detecting deception, or examining courtroom psychology and jury decision making.',38),('EE001','Nanotechnology',4,12,'Mandatory','31-03-2020',23000,'Our two-year MSc program focuses on the design, creation and study of functional materials, structures, devices and systems by directly controlling matter on the nanometre scale and is for anyone interested in the exciting and upcoming field of nanoscience and nanoengineering.',3),('EE002','Software Engineering',4,17,'Optional','09-05-2020',15000,'Whether you want to create a VR training program for surgeons, the next "swipe right" dating app, or an autonomous car, software engineers have endless career options in today’s tech-enabled world. You’ll analyze software architecture, apply algorithms, understand digital hardware systems, and design human/ computer interfaces. Plus, you’ll learn how to work in teams and manage projects, all while being taught by one of the best universities on the planet for software engineering.',3),('EE003','Artificial Intelligence',4,15,'Mandatory','21-03-2020',20000,'Self-driving cars, smart cameras, surveillance systems, robotic manufacturing and machine translations: examples of how artificial intelligence has become integrated in society. In the highly competitive two-year Master’s programme Artificial Intelligence (AI) you will develop a solid understanding of AI and become an expert in a rapidly evolving discipline.',3),('AI336','Artificial Intelligence',6,15,'Mandatory','30-12-2019',10000,'The core topics in the program \"Artificial Intelligence\" are: autonomous perceptive systems, cognitive robotics and multi-agent systems.Many of your courses will be taught by internationally known researchers spanning a wide range of areas in artificial intelligence and also drawing on research in related fields such as neuroscience, cognitive science, linguistics, and mathematics. ',184),('AS673','Applied Archaeological Sciences',2,20,'Mandatory','01-09-2019',6300,'The MSc in Applied Archaeological Sciences is designed in order to provide the necessary knowledge and expertise to students, researchers, managers and leaders of the Cultural Heritage sector. The program is an original combination of modern concept and needs for identification, documentation, maintenance, rescue and diffusion of at risk world heritage.',230),('CP234','Criminal Psychology',4,20,'Distance Learning','05-04-2020',6442,'Develop your skills in leading complex criminal investigations, improve your skills in making reasoned arguments and rational decisions, and deepen your understanding of a range of key criminological theories, practices and perspectives in order to improve your potential impact within a policing, prison, probation or other criminal justice.',34),('CS212','Software Engineering',5,20,'Optional','20-02-2020',8000,'The MSc in Software Engineering teaches the principles of modern software engineering, together with the tools, methods and techniques that support their application. It offers working professionals the opportunity to learn more about the technological advances that are changing their lives, through a course of part-time study.',89),('EE004','Nanotechnology',4,25,'Optional','28-08-2019',20000,'The MSc in Nanotechnology at University of Twente (UT) focuses on the design, creation and study of functional materials, structures, devices and systems by directly controlling matter on the nanometre scale and is for anyone interested in the exciting and upcoming field of nanoscience and nanoengineering.',18),('LC239','Construction Law',6,25,'Optional','01-05-2020',9000,'The construction industry increasingly recognises the importance of resolving disputes efficiently and quickly in order to maintain commercial relationships and keep cash flowing within the industry. If you are a professional working in construction, law or a related field, this program will develop your ability to resolve disputes.',101),('LE177','European Master in Law & Economics',4,12,'Mandatory','01-03-2020',7500,'EMLE synthesizes law and economics together into a programme that is both manageable in its structure and innovative in its design. This programme creates an atmosphere of internationality through its students and its universities, which provides both a learning experience for its scholars and a desirable trait for future employers. The combination of law and economics fosters an atmosphere of idea sharing and introduces different techniques for examining and handling problems.',94),('LP179','Law & Politics in EU',3,30,'Distance Learning','10-01-2020',0,'The Program aims to provide the opportunity for bi-scientific approach, deepen and sharpen the cognitive module which consists of the subjects / fields of the State and of European Law, Political Theory, Political Science, International and European Studies and others objects included in the broader field of political science.',101),('OD781','Forensic Odontology',2,50,'Mandatory','15-12-2019',9150,'The aims of the program are to provide you with thorough knowledge and practical skills in the field of forensic odontology. While no single case is alike and many cases are difficult to prepare for, the programme provides a sound and scientific foundation on which you can rely in your future career. The KU Leuven Master’s Programme of Forensic Odontology is one of the few programmes of its kind in the world. ',121),('RB592','Robotics',4,18,'Mandatory','01-04-2020',6000,'The MSc in Robotics will provide you with the ability to understand, design and implement modern robotic systems. Robotics is increasingly prominent in a variety of sectors (eg manufacturing, health and remote exploration of hostile environments such as space and the deep sea) and as autonomous and semi-autonomous systems that interact with people physically and socially.',7),('ST029','Statistics',4,15,'Optional','31-03-2020',20770,'The Master of Statistics offered by the University of Wollongong is designed for candidates holding a Bachelor degree with a minor (or major) in mathematics or statistics. This program is designed to upgrade statistical skills and to educate students to undertake advanced statistical work in industry, commerce or government, including the ability to communicate effectively with others.',32),('ST404','Statistics',5,30,'Mandatory','01-06-2020',9000,'All over the world, human beings create an immense and ever-increasing volume of data, with new kinds of data regularly emerging from science and industry. A new understanding of the value of these data to society has emerged, and with it, a new and leading role for statistics. In order to produce sensible theories and draw accurate conclusions from data, cutting-edge statistical methods are needed.',67); +/*!40000 ALTER TABLE `Program` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Program_has_Course` +-- + +DROP TABLE IF EXISTS `Program_has_Course`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Program_has_Course` ( + `program___id` char(5) NOT NULL, + `course_id` char(6) NOT NULL, + PRIMARY KEY (`program___id`,`course_id`), + KEY `course_id_idx` (`course_id`), + CONSTRAINT `course_id` FOREIGN KEY (`course_id`) REFERENCES `Course` (`courseID`) ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT `program___id` FOREIGN KEY (`program___id`) REFERENCES `Program` (`programID`) ON DELETE NO ACTION ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Program_has_Course` +-- + +LOCK TABLES `Program_has_Course` WRITE; +/*!40000 ALTER TABLE `Program_has_Course` DISABLE KEYS */; +INSERT INTO `Program_has_Course` VALUES ('LP179','EN2345'),('LP179','LA7659'),('LP179','LA7688'),('ST029','DM9471'),('ST029','FC3938'),('ST029','TH9803'); +/*!40000 ALTER TABLE `Program_has_Course` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Program_prerequisites` +-- + +DROP TABLE IF EXISTS `Program_prerequisites`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Program_prerequisites` ( + `program__id` char(5) NOT NULL, + `prerequisites` varchar(120) NOT NULL, + PRIMARY KEY (`program__id`,`prerequisites`), + CONSTRAINT `program__id` FOREIGN KEY (`program__id`) REFERENCES `Program` (`programID`) ON DELETE NO ACTION ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Program_prerequisites` +-- + +LOCK TABLES `Program_prerequisites` WRITE; +/*!40000 ALTER TABLE `Program_prerequisites` DISABLE KEYS */; +INSERT INTO `Program_prerequisites` VALUES ('EE004','Certificate of English Language (C2)'),('EE004','Degree grade over 7.5'),('EE004','Degree in Nanoengineering'),('OD781','Degree in Dentistry'),('OD781','Letter of Recommendation'),('ST029','Degree in Mathematics or Finance'),('ST029','Letter of Recommendation'); +/*!40000 ALTER TABLE `Program_prerequisites` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Reviews` +-- + +DROP TABLE IF EXISTS `Reviews`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Reviews` ( + `user_id` int(11) NOT NULL, + `IDprogram` char(5) NOT NULL, + `grade` int(10) unsigned NOT NULL, + `comment` varchar(500) DEFAULT NULL, + PRIMARY KEY (`user_id`,`IDprogram`), + KEY `program_id_idx` (`IDprogram`), + CONSTRAINT `IDprogram` FOREIGN KEY (`IDprogram`) REFERENCES `Program` (`programID`) ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT `user_id` FOREIGN KEY (`user_id`) REFERENCES `User` (`userID`) ON DELETE NO ACTION ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Reviews` +-- + +LOCK TABLES `Reviews` WRITE; +/*!40000 ALTER TABLE `Reviews` DISABLE KEYS */; +INSERT INTO `Reviews` VALUES (20,'AS673',8,'Really good. Except the accommodation cooking facilities. The uni has a lot of facilities such as the study lounge, my friends and I love going there of an evening to watch TV!'),(34,'OD781',9,'The lecturers are fantastic and very well structured, I enjoyed every single one. Professors are awesome as well, willing to help. Facilities fine.'),(67,'EE004',10,'Best time of my life getting to know so many people from different nationalities. Making friendships for life while studying with the best teachers, who give you that attention!...Don’t want anything more..'),(456,'EE004',9,'Had some really good opportunities which I probably would not have at another uni. The campus and facilities are fantastic and lecturers are very helpful. I’m glad I am studying here.'),(670,'EE004',10,'Awesome! There was a really good atmosphere in the class, everyone willing to help. Always sunny in Thessaloniki and so many parties and night life.'),(3098,'OD781',7,'I had a hard time getting to know the university and the way teachers act. Facilities were fine and indeed I gained much knowledge but professors were hard.'); +/*!40000 ALTER TABLE `Reviews` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Scholarship` +-- + +DROP TABLE IF EXISTS `Scholarship`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Scholarship` ( + `scholarshipID` int(11) NOT NULL, + `type` enum('Athletic','Merit-Based','Brand Scholarship','College Scholarship','Contest Scholarship') NOT NULL, + `amount` int(10) unsigned NOT NULL, + `institution` varchar(36) NOT NULL, + `applications_deadline` char(10) DEFAULT NULL, + `program_id` char(5) NOT NULL, + PRIMARY KEY (`scholarshipID`,`program_id`), + KEY `program_id_idx` (`program_id`), + CONSTRAINT `program_id` FOREIGN KEY (`program_id`) REFERENCES `Program` (`programID`) ON DELETE NO ACTION ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Scholarship` +-- + +LOCK TABLES `Scholarship` WRITE; +/*!40000 ALTER TABLE `Scholarship` DISABLE KEYS */; +INSERT INTO `Scholarship` VALUES (77,'Merit-Based',25000,'Stavros Niarchos Foundation','01-01-2020','ST029'),(113,'College Scholarship',2000,'AUTH','31-01-2020','ST404'),(123,'Merit-Based',10000,'Stavros Niarchos Foundation','28-12-2019','EE004'),(125,'College Scholarship',5000,'University of Wollonong','06-05-2020','ST029'),(226,'Contest Scholarship',8000,'63th Global Management Contest','25-02-2020','OD781'),(234,'Merit-Based',20000,'Australian Government','15-04-2020','ST029'),(345,'College Scholarship',3000,'AUTH','30-01-2020','EE004'); +/*!40000 ALTER TABLE `Scholarship` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Scholarship_criteria` +-- + +DROP TABLE IF EXISTS `Scholarship_criteria`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Scholarship_criteria` ( + `scholarship_id` int(11) NOT NULL, + `programId` char(5) NOT NULL, + `criteria` varchar(120) NOT NULL, + PRIMARY KEY (`scholarship_id`,`programId`,`criteria`), + KEY `programId_idx` (`programId`), + CONSTRAINT `programId` FOREIGN KEY (`programId`) REFERENCES `Scholarship` (`program_id`) ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT `scholarship_id` FOREIGN KEY (`scholarship_id`) REFERENCES `Scholarship` (`scholarshipID`) ON DELETE NO ACTION ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Scholarship_criteria` +-- + +LOCK TABLES `Scholarship_criteria` WRITE; +/*!40000 ALTER TABLE `Scholarship_criteria` DISABLE KEYS */; +INSERT INTO `Scholarship_criteria` VALUES (123,'EE004','Degree grade over 8.5'),(123,'EE004','Income under 12000 per year'),(123,'EE004','Not owning any homeplace at the city of the university'),(125,'ST029','Being an international student'),(125,'ST029','Degree grade over 8'),(226,'OD781','Degree grade over 7.5'),(226,'OD781','Owning the 1st, 2nd or 3rd award in the contest'),(234,'ST029','Australian Nationality'),(234,'ST029','Degree grade over 9'),(234,'ST029','Income under 10000 per year'); +/*!40000 ALTER TABLE `Scholarship_criteria` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `University` +-- + +DROP TABLE IF EXISTS `University`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `University` ( + `universityID` varchar(6) NOT NULL, + `name` varchar(36) NOT NULL, + `ranking` int(10) unsigned DEFAULT NULL, + `country` varchar(36) DEFAULT NULL, + `city` varchar(36) DEFAULT NULL, + PRIMARY KEY (`universityID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `University` +-- + +LOCK TABLES `University` WRITE; +/*!40000 ALTER TABLE `University` DISABLE KEYS */; +INSERT INTO `University` VALUES ('AUTH','Aristotle University of Thessaloniki',724,'Greece','Thessaloniki'),('DUTH','Democritus University of Thrace',915,'Greece','Xanthi'),('ESSEX','University of Essex',251,'UK','Essex'),('ETH','ETH Zurich',10,'Switzerland','Zurich'),('EUR','Erasmus University Rotterdam',402,'Netherlands','Rotterdam'),('KU','KU Leuven University',347,'Belgium','Leuven'),('MAR','Philipps-University Marburg',583,'Germany','Marburg'),('OX','University of Oxford',4,'UK','Oxford'),('UNIC','University of Nicosia',1152,'Cyprus','Nicosia'),('UOW','University of Wollongong',217,'Australia','Wollongong'),('UT','University of Twente',419,'Netherlands','Enschede'); +/*!40000 ALTER TABLE `University` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `User` +-- + +DROP TABLE IF EXISTS `User`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `User` ( + `userID` int(11) NOT NULL, + `name` varchar(36) NOT NULL, + `nationality` varchar(36) DEFAULT NULL, + `email` varchar(36) NOT NULL, + PRIMARY KEY (`userID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `User` +-- + +LOCK TABLES `User` WRITE; +/*!40000 ALTER TABLE `User` DISABLE KEYS */; +INSERT INTO `User` VALUES (20,'Mary Williams','English','maryy95@yahoo.uk'),(23,'Maria Papadopoulou','Greek','papadop@gmail.com'),(34,'Lucia Pelino','Italian','pelinolu@gmail.com'),(67,'Felix Bauer','Austrian','bauerfelix@gmail.com'),(234,'Harry Black','American','harry_black@gmail.com'),(456,'Elizabeth Jones','English','joneseliz2@yahoo.uk'),(670,'Friedrich Schneider','German','schneider95@yahoo.de'),(984,'Aiko Furukawa','Japanese','furukaiko@gmail.com'),(3098,'Odysseas Papas','Greek','odyssey_p@yahoo.gr'),(4667,'John Smith','American','johnsmith@yahoo.us'); +/*!40000 ALTER TABLE `User` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Temporary table structure for view `curriculums` +-- + +DROP TABLE IF EXISTS `curriculums`; +/*!50001 DROP VIEW IF EXISTS `curriculums`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +/*!50001 CREATE TABLE `curriculums` ( + `Course` tinyint NOT NULL, + `Program` tinyint NOT NULL, + `ID` tinyint NOT NULL +) ENGINE=MyISAM */; +SET character_set_client = @saved_cs_client; + +-- +-- Temporary table structure for view `programs_by_unis` +-- + +DROP TABLE IF EXISTS `programs_by_unis`; +/*!50001 DROP VIEW IF EXISTS `programs_by_unis`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +/*!50001 CREATE TABLE `programs_by_unis` ( + `Msc` tinyint NOT NULL, + `University` tinyint NOT NULL, + `universityID` tinyint NOT NULL, + `Semesters` tinyint NOT NULL, + `Attendancy` tinyint NOT NULL, + `Fees` tinyint NOT NULL, + `Description` tinyint NOT NULL +) ENGINE=MyISAM */; +SET character_set_client = @saved_cs_client; + +-- +-- Temporary table structure for view `users_reviews` +-- + +DROP TABLE IF EXISTS `users_reviews`; +/*!50001 DROP VIEW IF EXISTS `users_reviews`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +/*!50001 CREATE TABLE `users_reviews` ( + `Username` tinyint NOT NULL, + `Program` tinyint NOT NULL, + `ID` tinyint NOT NULL, + `Grade` tinyint NOT NULL, + `Comment` tinyint NOT NULL +) ENGINE=MyISAM */; +SET character_set_client = @saved_cs_client; + +-- +-- Temporary table structure for view `wishlists` +-- + +DROP TABLE IF EXISTS `wishlists`; +/*!50001 DROP VIEW IF EXISTS `wishlists`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +/*!50001 CREATE TABLE `wishlists` ( + `Username` tinyint NOT NULL, + `Program` tinyint NOT NULL, + `ID` tinyint NOT NULL +) ENGINE=MyISAM */; +SET character_set_client = @saved_cs_client; + +-- +-- Final view structure for view `curriculums` +-- + +/*!50001 DROP TABLE IF EXISTS `curriculums`*/; +/*!50001 DROP VIEW IF EXISTS `curriculums`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8 */; +/*!50001 SET character_set_results = utf8 */; +/*!50001 SET collation_connection = utf8_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50001 VIEW `curriculums` AS select `Course`.`name` AS `Course`,`Program`.`name` AS `Program`,`Program`.`programID` AS `ID` from ((`Program` join `Program_has_Course` on(`Program`.`programID` = `Program_has_Course`.`program___id`)) join `Course` on(`Course`.`courseID` = `Program_has_Course`.`course_id`)) */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `programs_by_unis` +-- + +/*!50001 DROP TABLE IF EXISTS `programs_by_unis`*/; +/*!50001 DROP VIEW IF EXISTS `programs_by_unis`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50001 VIEW `programs_by_unis` AS select `Program`.`name` AS `Msc`,`University`.`name` AS `University`,`University`.`universityID` AS `universityID`,`Program`.`duration` AS `Semesters`,`Program`.`attendancy` AS `Attendancy`,`Program`.`fees` AS `Fees`,`Program`.`description` AS `Description` from ((`Program` join `Department` on(`Program`.`department_id` = `Department`.`departmentID`)) join `University` on(`University`.`universityID` = `Department`.`university_id`)) */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `users_reviews` +-- + +/*!50001 DROP TABLE IF EXISTS `users_reviews`*/; +/*!50001 DROP VIEW IF EXISTS `users_reviews`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50001 VIEW `users_reviews` AS select `User`.`name` AS `Username`,`Program`.`name` AS `Program`,`Program`.`programID` AS `ID`,`Reviews`.`grade` AS `Grade`,`Reviews`.`comment` AS `Comment` from ((`User` join `Reviews` on(`User`.`userID` = `Reviews`.`user_id`)) join `Program` on(`Program`.`programID` = `Reviews`.`IDprogram`)) */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `wishlists` +-- + +/*!50001 DROP TABLE IF EXISTS `wishlists`*/; +/*!50001 DROP VIEW IF EXISTS `wishlists`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8 */; +/*!50001 SET character_set_results = utf8 */; +/*!50001 SET collation_connection = utf8_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50001 VIEW `wishlists` AS select `User`.`name` AS `Username`,`Program`.`name` AS `Program`,`Program`.`programID` AS `ID` from ((`User` join `Likes` on(`Likes`.`user__id` = `User`.`userID`)) join `Program` on(`Program`.`programID` = `Likes`.`ID_program`)) */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2019-12-19 21:46:13 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..9d8e984 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,74 @@ +apturl==0.5.2 +asn1crypto==0.24.0 +blinker==1.4 +Brlapi==0.6.6 +certifi==2018.1.18 +chardet==3.0.4 +click==6.7 +colorama==0.3.7 +command-not-found==0.3 +cryptography==2.1.4 +cupshelpers==1.0 +cycler==0.10.0 +defer==1.0.6 +distro-info===0.18ubuntu0.18.04.1 +Flask==0.12.2 +httplib2==0.9.2 +idna==2.6 +itsdangerous==0.24 +Jinja2==2.10 +keyring==10.6.0 +keyrings.alt==3.0 +language-selector==0.1 +launchpadlib==1.10.6 +lazr.restfulclient==0.13.5 +lazr.uri==1.0.3 +louis==3.5.0 +macaroonbakery==1.1.3 +Mako==1.0.7 +MarkupSafe==1.0 +matplotlib==2.1.1 +mysqlclient==1.4.6 +netifaces==0.10.4 +numpy==1.13.3 +oauth==1.0.1 +olefile==0.45.1 +pexpect==4.2.1 +Pillow==5.1.0 +protobuf==3.0.0 +pycairo==1.16.2 +pycrypto==2.6.1 +pycups==1.9.73 +pygobject==3.26.1 +pyinotify==0.9.6 +pymacaroons==0.13.0 +PyMySQL==0.8.0 +PyNaCl==1.1.2 +pyOpenSSL==17.5.0 +pyparsing==2.2.0 +pyRFC3339==1.0 +python-apt==1.6.4 +python-dateutil==2.6.1 +python-debian==0.1.32 +pytz==2018.3 +pyxdg==0.25 +PyYAML==3.12 +reportlab==3.4.0 +requests==2.18.4 +requests-unixsocket==0.1.5 +scour==0.36 +SecretStorage==2.3.1 +simplejson==3.13.2 +six==1.11.0 +SQLAlchemy==1.3.12 +system-service==0.3 +systemd-python==234 +ubuntu-drivers-common==0.0.0 +ufw==0.36 +unattended-upgrades==0.1 +urllib3==1.22 +usb-creator==0.3.3 +wadllib==1.3.2 +Werkzeug==0.14.1 +xkit==0.0.0 +zope.interface==4.3.2 diff --git a/static/css/.Rhistory b/static/css/.Rhistory new file mode 100644 index 0000000..e69de29 diff --git a/static/css/developers.css b/static/css/developers.css new file mode 100644 index 0000000..1adcffa --- /dev/null +++ b/static/css/developers.css @@ -0,0 +1,55 @@ +@import "navigation.css"; + +h1,h3{ + font-weight: 300; + margin: 5px; +} + +h5{ + font-weight: 300; + margin: 10px; +} + +li a { + font-family: "Poppins", sans-serif; + display: block; + color: white; + text-align: center; + padding: 14px 16px; + text-decoration: none; +} + +li a:hover { + background-color: #5E76CC; +} + +.welcome_message{ + margin: 3%; + width: 93%; + text-align: center; + font-family: "Poppins", sans-serif; + color: #222222; + text-transform: uppercase; + font-size: 20px; +} + +.three{ + display: block; + padding-left: 7%; + width:90%; + font-size: 20px; + font-family: "Poppins", sans-serif; + color: #222222; +} + +.who{ + float: left; + width: 25%; + margin: 3%; + text-align: center; + transition: transform .2s; +} + +.who:hover { + transform: scale(1.2); /* (150% zoom - Note: if the zoom is too large, it will go outside of the viewport) */ +} diff --git a/static/css/domain_programs.css b/static/css/domain_programs.css new file mode 100644 index 0000000..c758bad --- /dev/null +++ b/static/css/domain_programs.css @@ -0,0 +1,66 @@ +@import "navigation.css"; + +h1, h2, h3, +h4, h5, h6 { + font-family: "Poppins", sans-serif; + color: #222222; + font-weight: 200; +} + +p +{ + font-family: "Poppins", sans-serif; + color: #222222; + font-weight: 190; + font-size: 17px; + +} + + +li a { + font-family: "Poppins", sans-serif; + display: block; + color: white; + text-align: center; + padding: 14px 16px; + text-decoration: none; +} + + + +li a:hover { + background-color: #5E76CC; +} + +.uni_container +{ + position: relative; + left: 100px; + top: 50px; + border: 2px solid ; + border-color: #7694ff; + border-radius: 5%; + width: 600px; + height: 200px; + padding: 10%; + overflow: auto; +} + +::-webkit-scrollbar { + display: none; +} + +.uni_info +{ + position: absolute; + top: 2px; + left: 30px; + +} +.main_image +{ + position: absolute; + right: 1%; + bottom: 20%; + top: 5% +} diff --git a/static/css/main.css b/static/css/main.css new file mode 100644 index 0000000..9c20510 --- /dev/null +++ b/static/css/main.css @@ -0,0 +1,82 @@ +@import "navigation.css"; + +h1, h2, h3, +h4, h5, h6 { + font-family: "Poppins", sans-serif; + color: #222222; + font-weight: 400; +} + +p +{ + font-family: "Poppins", sans-serif; + color: #222222; + font-weight: 200; + font-size: 17px; + +} + +li a { + font-family: "Poppins", sans-serif; + display: block; + color: white; + text-align: center; + padding: 14px 16px; + text-decoration: none; +} + + + +li a:hover { + background-color: #5E76CC; +} + +.welcome_message +{ + + width: 35%; + padding: 100px ; + margin-left: 0%; + +} + +.primary-btn +{ + font-family: "Poppins", sans-serif; + background: -moz-linear-gradient(0deg, #8490ff 0%, #62bdfc 100%); + background: -webkit-linear-gradient(0deg, #8490ff 0%, #62bdfc 100%); + background: -ms-linear-gradient(0deg, #8490ff 0%, #62bdfc 100%); + text-transform: uppercase; + line-height: 42px; + padding-left: 30px; + padding-right: 30px; + border: none; + color: #fff; + display: inline-block; + font-weight: 500; + position: relative; + -webkit-transition: all 0.3s ease 0s; + -moz-transition: all 0.3s ease 0s; + -o-transition: all 0.3s ease 0s; + transition: all 0.3s ease 0s; + cursor: pointer; + text-decoration: none; +} + +.primary-btn:hover { + color: #ebeae8; +} + +.primary-btn.white { + border: 1px solid #fff; + color: #fff; +} + + +.main_image +{ + position: absolute; + right: 5%; + bottom: 20%; + top: 15% +} diff --git a/static/css/motivation.css b/static/css/motivation.css new file mode 100644 index 0000000..d5fe821 --- /dev/null +++ b/static/css/motivation.css @@ -0,0 +1,92 @@ +@import "navigation.css"; + +h2{ + font-weight: 300; + margin: 5px; +} + +h3{ + font-weight: 500; + margin: 5px; +} + +h5{ + font-weight: 300; + margin: 10px; +} + +li a { + font-family: "Poppins", sans-serif; + display: block; + color: white; + text-align: center; + padding: 14px 16px; + text-decoration: none; +} + +li a:hover { + background-color: #5E76CC; +} + +.welcome_message{ + margin: 2%; + width: 93%; + text-align: center; + font-family: "Poppins", sans-serif; + color: #222222; + text-transform: uppercase; + font-size: 20px; +} + + +.six{ + display: block; + padding-left: 7%; + width:90%; + font-size: 20px; + font-family: "Poppins", sans-serif; + color: #222222; +} + +.why{ + float: left; + width: 25%; + margin-left: 2%; + margin-right: 2%; + text-align: center; + position: relative; +} + + +.overlay { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + height: 100%; + width: 100%; + opacity: 0; + transition: .5s ease; +} + +.why:hover .overlay { + opacity: 1; +} + +.why:hover .image{ + opacity: 0.2; + filter:alpha(opacity=20); +} + +.text { + color: black; + font-size: 15px; + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate(-50%, -50%); + -ms-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + text-align: center; +} diff --git a/static/css/navigation.css b/static/css/navigation.css new file mode 100644 index 0000000..da5d3cc --- /dev/null +++ b/static/css/navigation.css @@ -0,0 +1,35 @@ +#navigation-container { + width: 100%; + margin-left: 0%; + height: 5%; +} + + +.navigation-bar ul { + list-style-type: none; + padding: 0%; + margin: 0%; + display:inline-flex; + vertical-align:top; + background-color: #7694ff; + overflow: hidden; + float: right; + height: 5%; +} + +html, body +{ + height: 100%; + min-height: 100%; +} + + +.banner-area { + padding: 10px; + background: #e3e3ff; + position: absolute; + right: 0px; + left: 0px; + top: 85px; + bottom: 0px; +} diff --git a/static/css/program.css b/static/css/program.css new file mode 100644 index 0000000..7a1380a --- /dev/null +++ b/static/css/program.css @@ -0,0 +1,92 @@ +@import "navigation.css"; + +h1{ + font-family: "Poppins", sans-serif; + color: #222222; + font-weight: 400; + text-shadow: 2px 2px gray; +} + +h2{ + font-family: "Poppins", sans-serif; + color: #222222; + font-weight: 400; + font-size: 120%; +} + +h3{ + font-family: "Poppins", sans-serif; + color: #222222; + font-weight: 500; + font-size: 120%; + text-align: right; +} + +h5{ + font-family: "Poppins", sans-serif; + color: #222222; + font-weight: 400; + font-size: 120%; + text-align: left; +} + + +h4{ + font-family: "Poppins", sans-serif; + color: #222222; + font-weight: 500; +} + + +li a { + font-family: "Poppins", sans-serif; + display: block; + color: white; + text-align: center; + padding: 14px 16px; + text-decoration: none; +} + + + +li a:hover { + background-color: #5E76CC; +} + +.img_program +{ + position: absolute; + left: 20%; + top: 7%; + border: 2px solid ; + border-color: #7694ff; + border-radius: 5%; + width: 800px; + height: 500px; + opacity: 0.4; + filter: alpha(opacity=40); + filter: blur(1px); + -webkit-filter: blur(1px); +} + + +.program_info { + position: absolute; + left: 20%; + top: 7%; + width: 800px; + height: 500px; + padding: 2%; +} +.basic_info{ + padding-left: 5%; +} + +.more_info{ + padding-right:5%; +} + +.description{ + padding-right:5%; + padding-bottom: 2%; +} diff --git a/static/css/search.css b/static/css/search.css new file mode 100644 index 0000000..3f744cf --- /dev/null +++ b/static/css/search.css @@ -0,0 +1,232 @@ +@import "navigation.css"; + +h1, h2, h3, +h4, h5, h6 { + font-family: "Poppins", sans-serif; + color: #222222; + font-weight: 400; +} + +p +{ + font-family: "Poppins", sans-serif; + color: #222222; + font-weight: 200; + font-size: 17px; + +} + +li a { + font-family: "Poppins", sans-serif; + display: block; + color: white; + text-align: center; + padding: 14px 16px; + text-decoration: none; +} + + + +li a:hover { + background-color: #5E76CC; +} + +.inv_container +{ + position: absolute; + width: 40%; + top: 10%; + right: 40%; +} + + +.invitation +{ + text-align: right; + text-transform: uppercase; + font-size:20px; + margin: 5%; + +} + + + + +.tb +{ + display: table; + width: 100%; + +} + +.td +{ + display: table-cell; + vertical-align: middle; + +} + +input, button +{ + color: #fff; + font-family: "Poppins"; + padding: 0; + margin: 0; + border: 0; + background-color: transparent; +} + +#cover +{ + position: absolute; + width: 40%; + top: 10%; + right: 33%; + top: 50%; + padding: 35px; + margin: -83px auto 0 auto; + background-color: #7694ff; + border-radius: 20px; + box-shadow: 0 20px 70px #7694ff, 0 0 0 30px #e3e3ff; + transform: scale(0.6); +} + + +#cover_2 +{ + position: absolute; + width: 40%; + top: 10%; + right: 33%; + top: 75%; + padding: 35px; + margin: -83px auto 0 auto; + background-color: #7694ff; + border-radius: 20px; + box-shadow: 0 20px 70px #7694ff, 0 0 0 30px #e3e3ff; + transform: scale(0.6); +} + + +form +{ + height: 96px; +} + +input[type="text"] +{ + width: 100%; + height: 96px; + font-size: 45px; + line-height: 1; + +} + +input[type="text"]::placeholder +{ + color: #ffff; + +} + +#s-cover +{ + width: 1px; + padding-left: 35px; +} + +button +{ + position: relative; + display: block; + width: 84px; + height: 96px; + cursor: pointer; +} + +#s-circle +{ + position: relative; + top: -8px; + left: 0; + width: 43px; + height: 43px; + margin-top: 0; + border-width: 15px; + border: 15px solid #fff; + background-color: transparent; + border-radius: 50%; + transition: 0.5s ease all; + +} + +button span +{ + position: absolute; + top: 68px; + left: 43px; + display: block; + width: 45px; + height: 15px; + background-color: transparent; + border-radius: 10px; + transform: rotateZ(52deg); + transition: 0.5s ease all; +} + +button span:before, button span:after +{ + content: ''; + position: absolute; + bottom: 0; + right: 0; + width: 45px; + height: 15px; + background-color: #fff; + border-radius: 10px; + transform: rotateZ(0); + transition: 0.5s ease all; +} + +#s-cover:hover #s-circle +{ + top: -1px; + width: 67px; + height: 15px; + border-width: 0; + background-color: #fff; + border-radius: 20px; +} + +#s-cover:hover span +{ + top: 50%; + left: 56px; + width: 25px; + margin-top: -9px; + transform: rotateZ(0); +} + +#s-cover:hover button span:before +{ + bottom: 11px; + transform: rotateZ(52deg); +} + +#s-cover:hover button span:after +{ + bottom: -11px; + transform: rotateZ(-52deg); +} +#s-cover:hover button span:before, #s-cover:hover button span:after +{ + right: -6px; + width: 40px; + background-color: #fff; +} + +.image +{ + position: absolute; + right: 0px; + bottom: 0px; +} diff --git a/static/css/university.css b/static/css/university.css new file mode 100644 index 0000000..7b5034f --- /dev/null +++ b/static/css/university.css @@ -0,0 +1,63 @@ +@import "navigation.css"; + +h1, h2, h3, +h4, h5, h6 { + font-family: "Poppins", sans-serif; + color: #222222; + font-weight: 200; +} + +p +{ + font-family: "Poppins", sans-serif; + color: #222222; + font-weight: 190; + font-size: 17px; + +} + + +li a { + font-family: "Poppins", sans-serif; + display: block; + color: white; + text-align: center; + padding: 14px 16px; + text-decoration: none; +} + + + +li a:hover { + background-color: #5E76CC; +} + +.uni_container +{ + position: relative; + left: 100px; + top: 50px; + border: 2px solid ; + border-color: #7694ff; + border-radius: 5%; + width: 600px; + height: 200px; + padding: 10%; + +} + +.main_image +{ + position: absolute; + right: 1%; + bottom: 20%; + top: 5% +} + +.uni_info +{ + position: absolute; + top: 2px; + left: 30px; + +} diff --git a/static/img/anthi.png b/static/img/anthi.png new file mode 100644 index 0000000..ef41086 Binary files /dev/null and b/static/img/anthi.png differ diff --git a/static/img/compare.png b/static/img/compare.png new file mode 100644 index 0000000..3da49f7 Binary files /dev/null and b/static/img/compare.png differ diff --git a/static/img/demetra.png b/static/img/demetra.png new file mode 100644 index 0000000..aa0433e Binary files /dev/null and b/static/img/demetra.png differ diff --git a/static/img/domain_programs.jpeg b/static/img/domain_programs.jpeg new file mode 100644 index 0000000..48df50e Binary files /dev/null and b/static/img/domain_programs.jpeg differ diff --git a/static/img/john.png b/static/img/john.png new file mode 100644 index 0000000..0942208 Binary files /dev/null and b/static/img/john.png differ diff --git a/static/img/like.png b/static/img/like.png new file mode 100644 index 0000000..9b8cae8 Binary files /dev/null and b/static/img/like.png differ diff --git a/static/img/logo.png b/static/img/logo.png new file mode 100644 index 0000000..e4784ae Binary files /dev/null and b/static/img/logo.png differ diff --git a/static/img/master.png b/static/img/master.png new file mode 100644 index 0000000..c18a4ba Binary files /dev/null and b/static/img/master.png differ diff --git a/static/img/program.jpg b/static/img/program.jpg new file mode 100644 index 0000000..63c216d Binary files /dev/null and b/static/img/program.jpg differ diff --git a/static/img/review.png b/static/img/review.png new file mode 100644 index 0000000..c29c0c4 Binary files /dev/null and b/static/img/review.png differ diff --git a/static/img/search.png b/static/img/search.png new file mode 100644 index 0000000..2ca6d6b Binary files /dev/null and b/static/img/search.png differ diff --git a/static/img/search_easy.png b/static/img/search_easy.png new file mode 100644 index 0000000..395716a Binary files /dev/null and b/static/img/search_easy.png differ diff --git a/static/img/students.jpg b/static/img/students.jpg new file mode 100644 index 0000000..a41096f Binary files /dev/null and b/static/img/students.jpg differ diff --git a/static/img/success.png b/static/img/success.png new file mode 100644 index 0000000..79c3c5a Binary files /dev/null and b/static/img/success.png differ diff --git a/static/img/university.jpg b/static/img/university.jpg new file mode 100644 index 0000000..2076315 Binary files /dev/null and b/static/img/university.jpg differ diff --git a/templates/developers.html b/templates/developers.html new file mode 100644 index 0000000..e5af275 --- /dev/null +++ b/templates/developers.html @@ -0,0 +1,68 @@ + + + + + + + PostgraDB + + + + + + + + + + + + + + + Home + Search + Developers + + + + + + + + Who made PostgraDB? + + + + + + Ioannis Gonidelis + Undergraduate Student at AUTH + + + + "Coding keeps me active like jogging." + + + + Dimitra Karatza + Undergraduate Student at AUTH + + + + "All your postgraduate programs gathered in PostgraDB. Made simple." + + + + Anthi Palazi + Undergraduate Student at AUTH + + + + "Creating PostgraDB was one of the most challenging things in my life!" + + + + + + + diff --git a/templates/domain_programs.html b/templates/domain_programs.html new file mode 100644 index 0000000..aae0fb3 --- /dev/null +++ b/templates/domain_programs.html @@ -0,0 +1,55 @@ + + + + + + + + + + PostgraDB + + + + + + + + + + + + + + + + Home + Search + Developers + + + + + + + + + Postgraduate programs available: + + {% for result in range(programs|length)%} + {{ programs[result] }} + {% endfor %} + + + + + + + + + + + + + + diff --git a/templates/home.html b/templates/home.html new file mode 100644 index 0000000..fabf01c --- /dev/null +++ b/templates/home.html @@ -0,0 +1,54 @@ + + + + + + + + PostgraDB + + + + + + + + + + + + + + + Home + Search + Developers + + + + + + + This is... + PostgraDB + + Over 50000 posgraduate programs available for you from over 4000 Universities all around the world! + + + discover now + + + Over 100000 users looking for or found a program here! + + + be one of them + + + + + + + + + + diff --git a/templates/motivation.html b/templates/motivation.html new file mode 100644 index 0000000..033f8c0 --- /dev/null +++ b/templates/motivation.html @@ -0,0 +1,101 @@ + + + + + + + PostgraDB + + + + + + + + + + + + + + + Home + Search + Developers + + + + + + + + Why become a user of PostgraDB? + + + + + + Search + + + + + Find available postgraduate programs from all over the world, as well as enlightening information about them. + + + + + Compare + + + + + Make comparison between fees, quality, location and field of the programs to help yourself decide. + + + + + Master + + + + + Stand out in the labour market by upgrading your CV as well as your technical brilliance. + + + + + Success + + + + + Achieve your goals by finding the master program that fits to you best. + + + + + Like + + + + + Like your favorite programs so that you can find them anytime. + + + + + Review + + + + + Tell us how good was your postgraduate program and help other users around the world. + + + + + + + + diff --git a/templates/program.html b/templates/program.html new file mode 100644 index 0000000..a52830a --- /dev/null +++ b/templates/program.html @@ -0,0 +1,54 @@ + + + + + + + PostgraDB + + + + + + + + + + + + + + + + Home + Search + Developers + + + + + + + + + + + {{prog_name}} + {{uni_name}} - {{uni_city}} + + + Duration: {{dur}} semesters + Fees: {{fees}} + Number of students: {{num_of_students}} + Attendancy: {{attendancy}} + Application Deadline: {{deadline}} + + + {{description}} + + + + + + + diff --git a/templates/search.html b/templates/search.html new file mode 100644 index 0000000..4d4d49f --- /dev/null +++ b/templates/search.html @@ -0,0 +1,97 @@ + + + + + + + Search for studies + + + + + + + + + + + + + + + Home + Search + Developers + + + + + + + + + + + + + + Over 2 million students + have found their perfect postgrad program with us + + + Why not join them? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/subjects.html b/templates/subjects.html new file mode 100644 index 0000000..1d71482 --- /dev/null +++ b/templates/subjects.html @@ -0,0 +1,49 @@ + + + + + + + PostgraDB + + + + + + + + + + + + + + + + Home + Search + Developers + + + + + + + + + This is... + PostgraDB + + Over 50000 posgraduate programs available for you from over 4000 Universities all around the world! + + + discover now + + + + + + + + + diff --git a/templates/university.html b/templates/university.html new file mode 100644 index 0000000..5c44a23 --- /dev/null +++ b/templates/university.html @@ -0,0 +1,52 @@ + + + + + + + PostgraDB + + + + + + + + + + + + + + + + Home + Search + Developers + + + + + + + + + {{uni_name}} - Rank: {{uni_rank}} + {{uni_city}} - {{uni_country}} + Postgraduate programs available: + + {% for result in range(programs|length)%} + {{ programs[result] }} + {% endfor %} + + + + + + + + + + + +
+ Over 50000 posgraduate programs available for you from over 4000 Universities all around the world! +
+ Over 100000 users looking for or found a program here! +
{{uni_name}} - {{uni_city}}