[Flask] Aggregate your news and vote for the content you care about.
'yes' page styles.
Changed files
Pipfile
@@ -11,8 +11,7 @@
11
11
uwsgi = "*"
12
12
flask-socketio = "*"
13
13
flask-sqlalchemy = "*"
14
Removed:
pymysql = "*"
15
Removed:
sqlalchemy = "*"
14
Added:
psycopg2 = "*"
16
15
17
16
[requires]
18
17
python_version = "3.8"
Pipfile.lock
@@ -1,7 +1,7 @@
1
1
{
2
2
"_meta": {
3
3
"hash": {
4
Removed:
"sha256": "45e0b8d6a2539692d1e7c95574a2ab2b419bd7d2ea86d84b5ee2a23e23dca9af"
4
Added:
"sha256": "9da6e208bd9f0c1e21efeea29b22ff142961469889f826c3e4404a3930b487d0"
5
5
},
6
6
"pipfile-spec": 6,
7
7
"requires": {
@@ -107,13 +107,24 @@
107
107
],
108
108
"version": "==1.1.1"
109
109
},
110
Removed:
"pymysql": {
110
Added:
"psycopg2": {
111
111
"hashes": [
112
Removed:
"sha256:3943fbbbc1e902f41daf7f9165519f140c4451c179380677e6a848587042561a",
113
Removed:
"sha256:d8c059dcd81dedb85a9f034d5e22dcb4442c0b201908bede99e306d65ea7c8e7"
112
Added:
"sha256:4212ca404c4445dc5746c0d68db27d2cbfb87b523fe233dc84ecd24062e35677",
113
Added:
"sha256:47fc642bf6f427805daf52d6e52619fe0637648fe27017062d898f3bf891419d",
114
Added:
"sha256:72772181d9bad1fa349792a1e7384dde56742c14af2b9986013eb94a240f005b",
115
Added:
"sha256:8396be6e5ff844282d4d49b81631772f80dabae5658d432202faf101f5283b7c",
116
Added:
"sha256:893c11064b347b24ecdd277a094413e1954f8a4e8cdaf7ffbe7ca3db87c103f0",
117
Added:
"sha256:92a07dfd4d7c325dd177548c4134052d4842222833576c8391aab6f74038fc3f",
118
Added:
"sha256:965c4c93e33e6984d8031f74e51227bd755376a9df6993774fd5b6fb3288b1f4",
119
Added:
"sha256:9ab75e0b2820880ae24b7136c4d230383e07db014456a476d096591172569c38",
120
Added:
"sha256:b0845e3bdd4aa18dc2f9b6fb78fbd3d9d371ad167fd6d1b7ad01c0a6cdad4fc6",
121
Added:
"sha256:dca2d7203f0dfce8ea4b3efd668f8ea65cd2b35112638e488a4c12594015f67b",
122
Added:
"sha256:ed686e5926929887e2c7ae0a700e32c6129abb798b4ad2b846e933de21508151",
123
Added:
"sha256:ef6df7e14698e79c59c7ee7cf94cd62e5b869db369ed4b1b8f7b729ea825712a",
124
Added:
"sha256:f898e5cc0a662a9e12bde6f931263a1bbd350cfb18e1d5336a12927851825bb6"
114
125
],
115
126
"index": "pypi",
116
Removed:
"version": "==0.9.3"
127
Added:
"version": "==2.8.4"
117
128
},
118
129
"python-engineio": {
119
130
"hashes": [
@@ -140,7 +151,6 @@
140
151
"hashes": [
141
152
"sha256:64a7b71846db6423807e96820993fa12a03b89127d278290ca25c0b11ed7b4fb"
142
153
],
143
Removed:
"index": "pypi",
144
154
"version": "==1.3.13"
145
155
},
146
156
"uwsgi": {
README.org
@@ -1,7 +1,6 @@
1
1
#+TITLE: README.org for =yesno=
2
2
#+AUTHOR: Marius P. and Vaqar S.
3
Removed:
#+DATE: 22 Jan. 2020
4
Removed:
#+LATEX_HEADER: \usepackage{fullpage}
3
Added:
#+DATE: Created: <2020-01-22 Wed> \break Updated: <2020-02-05 Wed>
5
4
6
5
* Folder structure
7
6
@@ -39,12 +38,21 @@
39
38
* Prerequisites
40
39
41
40
1. A Python interpreter and the following dependencies:
42
Removed:
1. =Flask=
41
Added:
| Dependency | Minimum version |
42
Added:
|--------------------+-----------------|
43
Added:
| =flask= | |
44
Added:
| =flask-wtf= | |
45
Added:
| =uwsgi= | |
46
Added:
| =flask-socketio= | |
47
Added:
| =flask-sqlalchemy= | |
48
Added:
| =psycopg2= | |
49
Added:
43
50
2. A web browser
44
51
45
52
* Installation
46
53
47
Removed:
Install Python.
54
Added:
1. Install Python
55
Added:
2. Install dependencies
48
56
49
57
* Viewing the website
50
58
README.pdf
Binary files differ
README.tex
@@ -1,4 +1,4 @@
1
Removed:
% Created 2020-01-22 Wed 20:21
1
Added:
% Created 2020-02-05 Wed 15:56
2
2
% Intended LaTeX compiler: pdflatex
3
3
\documentclass[11pt]{article}
4
4
\usepackage[utf8]{inputenc}
@@ -14,9 +14,8 @@
14
14
\usepackage{amssymb}
15
15
\usepackage{capt-of}
16
16
\usepackage{hyperref}
17
Removed:
\usepackage{fullpage}
18
17
\author{Marius P. and Vaqar S.}
19
Removed:
\date{22 Jan. 2020}
18
Added:
\date{Created: \textit{<2020-01-22 Wed> } \break Updated: \textit{<2020-02-05 Wed>}}
20
19
\title{README.org for \texttt{yesno}}
21
20
\hypersetup{
22
21
pdfauthor={Marius P. and Vaqar S.},
@@ -32,69 +31,83 @@
32
31
33
32
34
33
\section{Folder structure}
35
Removed:
\label{sec:org7993fb5}
34
Added:
\label{sec:org077247d}
36
35
37
36
\subsection{\texttt{Pipfile}}
38
Removed:
\label{sec:org80836f9}
37
Added:
\label{sec:org4222668}
39
38
Inspecting this file reveals the Python dependencies required by the Flask application.
40
39
The convenient \texttt{pipenv} Python package bundles together the creation of virtual environments and populating these virtual environments using the same commands as \texttt{pip}. For more information on \texttt{pipenv}, visit \href{https://github.com/pypa/pipenv}{the official pipenv page}.
41
40
42
41
\subsection{\texttt{Pipfile.lock}}
43
Removed:
\label{sec:orgf06ab89}
42
Added:
\label{sec:org425064c}
44
43
This file contains checksums for the packages installed via \texttt{pipenv}.
45
44
46
45
\subsection{\texttt{README.org}}
47
Removed:
\label{sec:org1715543}
46
Added:
\label{sec:orgdff75cc}
48
47
This is the file you are currently reading. Github automatically formats README files and presents underneath the code explorer.
49
48
50
49
\subsection{\texttt{app} directory}
51
Removed:
\label{sec:org67d9e1d}
50
Added:
\label{sec:orgac83665}
52
51
Contains \texttt{.py} Python scripts calling the \texttt{Flask} library in order to serve web pages to the end user.
53
52
54
53
\subsubsection{\texttt{static}}
55
Removed:
\label{sec:org250fc10}
54
Added:
\label{sec:orgb2e5456}
56
55
Static files and assets do not change during the \texttt{Flask} application's execution.
57
56
58
57
\begin{enumerate}
59
58
\item \texttt{img}
60
Removed:
\label{sec:org6b963c3}
59
Added:
\label{sec:org7afe92f}
61
60
This is where website images are saved. User images will be stored in a database, which is currently not implemented.
62
61
63
62
\item \texttt{styles}
64
Removed:
\label{sec:org860737a}
63
Added:
\label{sec:org4bfb4f4}
65
64
Here, we store \texttt{CSS} style sheets. These contain appearance information for elements described in \texttt{HTML} documents.
66
65
\end{enumerate}
67
66
68
67
\subsubsection{\texttt{templates}}
69
Removed:
\label{sec:orgae70d36}
68
Added:
\label{sec:org4f7742b}
70
69
In the templates folder, we organise our \texttt{HTML} templates. Rather than simple \texttt{HTML} documents which always present the same content to all users, templates are rendered to the user's browser by the application and are populated during loading with content we can request via the Python application.
71
70
72
71
\subsubsection{\texttt{routes.py}}
73
Removed:
\label{sec:orge3ac7eb}
72
Added:
\label{sec:org691e421}
74
73
This Python file containes our website routes. These are the names of our website's pages, followed by functions describing actions performed on the server side every time a user visits a certain page.
75
74
76
75
\subsubsection{\texttt{forms.py}}
77
Removed:
\label{sec:org934f5b3}
76
Added:
\label{sec:org18bbfe0}
78
77
This Python file contains the forms that our user will sign in throughout the website (registration, login). Possible implementation of the messaging system as a series of forms sent from user to user.
79
78
80
79
\section{Prerequisites}
81
Removed:
\label{sec:orgf8c00d7}
80
Added:
\label{sec:org37f495c}
82
81
83
82
\begin{enumerate}
84
83
\item A Python interpreter and the following dependencies:
85
Removed:
\begin{enumerate}
86
Removed:
\item \texttt{Flask}
87
Removed:
\end{enumerate}
84
Added:
\begin{center}
85
Added:
\begin{tabular}{ll}
86
Added:
Dependency & Minimum version\\
87
Added:
\hline
88
Added:
\texttt{flask} & \\
89
Added:
\texttt{flask-wtf} & \\
90
Added:
\texttt{uwsgi} & \\
91
Added:
\texttt{flask-socketio} & \\
92
Added:
\texttt{flask-sqlalchemy} & \\
93
Added:
\texttt{psycopg2} & \\
94
Added:
\end{tabular}
95
Added:
96
Added:
\end{center}
97
Added:
88
98
\item A web browser
89
99
\end{enumerate}
90
100
91
101
\section{Installation}
92
Removed:
\label{sec:org41d3c46}
102
Added:
\label{sec:org4f8f49c}
93
103
94
Removed:
Install Python.
104
Added:
\begin{enumerate}
105
Added:
\item Install Python
106
Added:
\item Install dependencies
107
Added:
\end{enumerate}
95
108
96
109
\section{Viewing the website}
97
Removed:
\label{sec:orgff7b5c7}
110
Added:
\label{sec:org61e9d73}
98
111
99
112
\begin{enumerate}
100
113
\item Run the \texttt{routes.py} script using your Python interpreter.
app/placeholder_messages.py
@@ -1,39 +1,199 @@
1
Removed:
messages = [{
2
Removed:
'author': 'A.Banyan_97',
3
Removed:
'date': 'Dec. 26th, 2019',
4
Removed:
'content': "How is it going?"
1
Added:
conversations = [{
2
Added:
'title': 'Code meee',
3
Added:
'messages': {
4
Added:
'1': {
5
Added:
'author': 'vaqarsyed',
6
Added:
'date': 'Jan. 31st 2020',
7
Added:
'content': 'Yo tryna code tonight?'
8
Added:
},
9
Added:
'2': {
10
Added:
'author': 'blendoit',
11
Added:
'date': 'Jan. 31st 2020',
12
Added:
'content': 'Sure, what time are you tryna meet up?'
13
Added:
},
14
Added:
'3': {
15
Added:
'author': 'vaqarsyed',
16
Added:
'date': 'Jan. 31st 2020',
17
Added:
'content': 'Maybe 8 or 9 sara7a.'
18
Added:
},
19
Added:
'4': {
20
Added:
'author':
21
Added:
'blendoit',
22
Added:
'date':
23
Added:
'Jan. 31st 2020',
24
Added:
'content':
25
Added:
'Perfect, I should be done with this fluid mechanics homework in the meantime, ah.'
26
Added:
},
27
Added:
'5': {
28
Added:
'author': 'vaqarsyed',
29
Added:
'date': 'Jan. 31st 2020',
30
Added:
'content': 'Ok cool, see you then.'
31
Added:
}
32
Added:
}
5
33
}, {
6
Removed:
'author': 'itsgeorgeeid',
7
Removed:
'date': 'Dec. 25th, 2019',
8
Removed:
'content': "Bas man we should have a private sesh."
34
Added:
'title': 'Second Convo',
35
Added:
'messages': {
36
Added:
'1': {
37
Added:
'author': 'vaqarsyed',
38
Added:
'date': 'Jan. 31st 2020',
39
Added:
'content': 'Yo tryna code tonight?'
40
Added:
},
41
Added:
'2': {
42
Added:
'author': 'blendoit',
43
Added:
'date': 'Jan. 31st 2020',
44
Added:
'content': 'Sure, what time are you tryna meet up?'
45
Added:
},
46
Added:
'3': {
47
Added:
'author': 'vaqarsyed',
48
Added:
'date': 'Jan. 31st 2020',
49
Added:
'content': 'Maybe 8 or 9 sara7a.'
50
Added:
},
51
Added:
'4': {
52
Added:
'author':
53
Added:
'blendoit',
54
Added:
'date':
55
Added:
'Jan. 31st 2020',
56
Added:
'content':
57
Added:
'Perfect, I should be done with this fluid mechanics homework in the meantime, ah.'
58
Added:
},
59
Added:
'5': {
60
Added:
'author': 'vaqarsyed',
61
Added:
'date': 'Jan. 31st 2020',
62
Added:
'content': 'Ok cool, see you then.'
63
Added:
}
64
Added:
}
9
65
}, {
10
Removed:
'author': 'Country_V',
11
Removed:
'date': 'Dec. 24th, 2019',
12
Removed:
'content': "Have you checked out Young Thug's latest leak?!"
66
Added:
'title': 'Third Convo',
67
Added:
'messages': {
68
Added:
'1': {
69
Added:
'author': 'vaqarsyed',
70
Added:
'date': 'Jan. 31st 2020',
71
Added:
'content': 'Yo tryna code tonight?'
72
Added:
},
73
Added:
'2': {
74
Added:
'author': 'blendoit',
75
Added:
'date': 'Jan. 31st 2020',
76
Added:
'content': 'Sure, what time are you tryna meet up?'
77
Added:
},
78
Added:
'3': {
79
Added:
'author': 'vaqarsyed',
80
Added:
'date': 'Jan. 31st 2020',
81
Added:
'content': 'Maybe 8 or 9 sara7a.'
82
Added:
},
83
Added:
'4': {
84
Added:
'author':
85
Added:
'blendoit',
86
Added:
'date':
87
Added:
'Jan. 31st 2020',
88
Added:
'content':
89
Added:
'Perfect, I should be done with this fluid mechanics homework in the meantime, ah.'
90
Added:
},
91
Added:
'5': {
92
Added:
'author': 'vaqarsyed',
93
Added:
'date': 'Jan. 31st 2020',
94
Added:
'content': 'Ok cool, see you then.'
95
Added:
}
96
Added:
}
13
97
}, {
14
Removed:
'author':
15
Removed:
'Blendoit',
16
Removed:
'date':
17
Removed:
'Dec. 26th, 2019',
18
Removed:
'content':
19
Removed:
"Ah, I'm creating a new website with a friend from college, how about you?"
98
Added:
'title': 'Fourth Convo',
99
Added:
'messages': {
100
Added:
'1': {
101
Added:
'author': 'vaqarsyed',
102
Added:
'date': 'Jan. 31st 2020',
103
Added:
'content': 'Yo tryna code tonight?'
104
Added:
},
105
Added:
'2': {
106
Added:
'author': 'blendoit',
107
Added:
'date': 'Jan. 31st 2020',
108
Added:
'content': 'Sure, what time are you tryna meet up?'
109
Added:
},
110
Added:
'3': {
111
Added:
'author': 'vaqarsyed',
112
Added:
'date': 'Jan. 31st 2020',
113
Added:
'content': 'Maybe 8 or 9 sara7a.'
114
Added:
},
115
Added:
'4': {
116
Added:
'author':
117
Added:
'blendoit',
118
Added:
'date':
119
Added:
'Jan. 31st 2020',
120
Added:
'content':
121
Added:
'Perfect, I should be done with this fluid mechanics homework in the meantime, ah.'
122
Added:
},
123
Added:
'5': {
124
Added:
'author': 'vaqarsyed',
125
Added:
'date': 'Jan. 31st 2020',
126
Added:
'content': 'Ok cool, see you then.'
127
Added:
}
128
Added:
}
20
129
}, {
21
Removed:
'author': 'BChon',
22
Removed:
'date': 'Jan. 26th, 2019',
23
Removed:
'content': "yo wassap"
24
Removed:
}, {
25
Removed:
'author': 'Blendoit',
26
Removed:
'date': 'Dec. 26th, 2019',
27
Removed:
'content': "Ah why aren't you replying"
28
Removed:
}, {
29
Removed:
'author': 'vaqarsyed',
30
Removed:
'date': 'Jan. 14th, 2019',
31
Removed:
'content': "Hrr, another day on the grind #slatt"
32
Removed:
}, {
33
Removed:
'author':
34
Removed:
'christinafarhat',
35
Removed:
'date':
36
Removed:
'Dec. 26th, 2019',
37
Removed:
'content':
38
Removed:
"I'm just using the first name that comes to mind at this point."
130
Added:
'title': 'Fifth Convo',
131
Added:
'messages': {
132
Added:
'1': {
133
Added:
'author': 'vaqarsyed',
134
Added:
'date': 'Jan. 31st 2020',
135
Added:
'content': 'Yo tryna code tonight?'
136
Added:
},
137
Added:
'2': {
138
Added:
'author': 'blendoit',
139
Added:
'date': 'Jan. 31st 2020',
140
Added:
'content': 'Sure, what time are you tryna meet up?'
141
Added:
},
142
Added:
'3': {
143
Added:
'author': 'vaqarsyed',
144
Added:
'date': 'Jan. 31st 2020',
145
Added:
'content': 'Maybe 8 or 9 sara7a.'
146
Added:
},
147
Added:
'4': {
148
Added:
'author':
149
Added:
'blendoit',
150
Added:
'date':
151
Added:
'Jan. 31st 2020',
152
Added:
'content':
153
Added:
'Perfect, I should be done with this fluid mechanics homework in the meantime, ah.'
154
Added:
},
155
Added:
'5': {
156
Added:
'author': 'vaqarsyed',
157
Added:
'date': 'Jan. 31st 2020',
158
Added:
'content': 'Ok cool, see you then.'
159
Added:
}
160
Added:
}
39
161
}]
162
Added:
# 'author': 'A.Banyan_97',
163
Added:
# 'date': 'Dec. 26th, 2019',
164
Added:
# 'content': "How is it going?"
165
Added:
# }, {
166
Added:
# 'author': 'itsgeorgeeid',
167
Added:
# 'date': 'Dec. 25th, 2019',
168
Added:
# 'content': "Bas man we should have a private sesh."
169
Added:
# }, {
170
Added:
# 'author': 'Country_V',
171
Added:
# 'date': 'Dec. 24th, 2019',
172
Added:
# 'content': "Have you checked out Young Thug's latest leak?!"
173
Added:
# }, {
174
Added:
# 'author':
175
Added:
# 'Blendoit',
176
Added:
# 'date':
177
Added:
# 'Dec. 26th, 2019',
178
Added:
# 'content':
179
Added:
# "Ah, I'm creating a new website with a friend from college, how about you?"
180
Added:
# }, {
181
Added:
# 'author': 'BChon',
182
Added:
# 'date': 'Jan. 26th, 2019',
183
Added:
# 'content': "yo wassap"
184
Added:
# }, {
185
Added:
# 'author': 'Blendoit',
186
Added:
# 'date': 'Dec. 26th, 2019',
187
Added:
# 'content': "Ah why aren't you replying"
188
Added:
# }, {
189
Added:
# 'author': 'vaqarsyed',
190
Added:
# 'date': 'Jan. 14th, 2019',
191
Added:
# 'content': "Hrr, another day on the grind #slatt"
192
Added:
# }, {
193
Added:
# 'author':
194
Added:
# 'christinafarhat',
195
Added:
# 'date':
196
Added:
# 'Dec. 26th, 2019',
197
Added:
# 'content':
198
Added:
# "I'm just using the first name that comes to mind at this point."
199
Added:
# }]
app/routes.py
@@ -23,7 +23,7 @@
23
23
24
24
from placeholder_posts import posts
25
25
from placeholder_news import news
26
Removed:
from placeholder_messages import messages
26
Added:
from placeholder_messages import conversations
27
27
28
28
app = Flask(__name__)
29
29
app.config['SECRET_KEY'] = 'Scooby_Lu,_where_are_you?'
@@ -62,14 +62,14 @@
62
62
@app.route("/home")
63
63
def home():
64
64
"""This is our homepage."""
65
Removed:
home_posts = posts + news + messages
65
Added:
home_posts = posts + news + conversations
66
66
return render_template('home.html', posts=home_posts)
67
67
68
68
69
69
@app.route("/yes")
70
70
def yes():
71
71
"""Another page, presenting the user with content marked as 'yes'."""
72
Removed:
return render_template("yes.html", messages=messages, news=news)
72
Added:
return render_template("yes.html", conversations=conversations, news=news)
73
73
74
74
75
75
@app.route("/no")
app/static/styles/default.css
@@ -1,7 +1,7 @@
1
1
:root {
2
2
--primary-color: #003B5C;
3
3
--secondary-color: #C3D7EE;
4
Removed:
--home: rgba(200, 200, 200, 0.7);
4
Added:
--home: #c8c8c8;
5
5
--yes: #5cff5c;
6
6
--no: #ff5c5c;
7
7
font-size: 18;
app/static/styles/home.css
@@ -1,7 +1,7 @@
1
1
/* Tabs. */
2
2
.tab-yes {
3
3
height: 100%;
4
Removed:
width: 10%;
4
Added:
width: 6%;
5
5
position: absolute;
6
6
left: 0;
7
7
background: var(--yes);
@@ -15,7 +15,7 @@
15
15
}
16
16
.tab-no {
17
17
height: 100%;
18
Removed:
width: 10%;
18
Added:
width: 6%;
19
19
position: absolute;
20
20
right: 0;
21
21
background: var(--no);
app/static/styles/yes.css
@@ -1,72 +1,113 @@
1
Removed:
/* Main page area. */
2
1
:root {background: var(--yes);}
3
Removed:
4
Removed:
.main {
2
Added:
/* Feeds wrapper. */
3
Added:
.feeds {
5
4
height: 100%;
6
Removed:
position: relative;
7
Removed:
z-index: 0;
5
Added:
width: calc(100% - 6%);
6
Added:
position: absolute;
8
7
overflow: hidden;
9
Removed:
/* animation-name: yes-refresh; */
10
Removed:
/* animation-duration: var(--slow-speed); */
8
Added:
animation-name: yes-refresh;
9
Added:
animation-duration: var(--med-speed);
11
10
}
12
Removed:
13
11
/* Tabs. */
14
12
.tab-no {
15
13
height: 100%;
16
14
width: 3%;
17
Removed:
position: absolute;
18
Removed:
right: 0;
15
Added:
position: relative;
16
Added:
float: right;
17
Added:
z-index: 0;
19
18
background: var(--no);
20
Removed:
/* animation-name: yes-refresh; */
21
Removed:
/* animation-duration: var(--slow-speed); */
22
19
}
20
Added:
.tab-no:hover {width: 6%; transition: var(--fast-speed);}
21
Added:
.tab-no:hover ~ .tab-home {width: 6%; transition: var(--fast-speed);}
22
Added:
.tab-no:hover ~ .feeds {right: 12%; transition: var(--fast-speed);}
23
23
.tab-home {
24
24
height: 100%;
25
25
width: 3%;
26
Added:
position: relative;
26
27
float: right;
27
Removed:
position: absolute;
28
Removed:
/* background: var(--home); */
29
Removed:
/* animation-name: yes-refresh; */
30
Removed:
animation-duration: var(--slow-speed);
28
Added:
z-index: 1;
29
Added:
background: var(--home);
31
30
}
32
Removed:
.tab-home:hover {
33
Removed:
width: 4%;
34
Removed:
transition: 0.2s;
31
Added:
.tab-home:hover {width: 6%; transition: var(--fast-speed);}
32
Added:
.tab-home:hover ~ .feeds {
33
Added:
/* left: -3%; */
34
Added:
right: 9%;
35
Added:
transition: var(--fast-speed);
35
36
}
36
Removed:
.tab-no:hover ~ .tab-home {
37
Removed:
width: 5%;
38
Removed:
transition: 0.2s;
39
Removed:
}
40
Removed:
.tab-no:hover {
41
Removed:
width: 4%;
42
Removed:
transition: 0.2s;
43
Removed:
}
44
37
45
Removed:
46
38
/* Feeds. */
47
Removed:
.feed-message {
39
Added:
.feed-conversations {
48
40
height: 100%;
49
Removed:
width: 25%;
41
Added:
width: 30%;
50
42
position: relative;
51
43
float: left;
52
44
overflow: auto;
53
45
}
54
Removed:
.message {
46
Added:
.conversation-wrapper {
47
Added:
/* background: blue; */
48
Added:
height: 25%;
49
Added:
position: relative;
50
Added:
margin: 1rem;
51
Added:
overflow: hidden;
52
Added:
perspective: 600px;
53
Added:
}
54
Added:
.conversation-wrapper:hover {
55
Added:
height: 40%;
56
Added:
transition-duration: var(--med-speed);
57
Added:
}
58
Added:
.btn-reply {
59
Added:
height: 3rem;
60
Added:
width: calc(50% - 1rem);
61
Added:
position: absolute;
62
Added:
left: 0;
63
Added:
background: var(--home);
64
Added:
border-radius: 8px;
65
Added:
transform: rotateX(90deg);
66
Added:
transition-duration: var(--slow-speed);
67
Added:
transform-origin: bottom;
68
Added:
}
69
Added:
.conversation-wrapper:hover > .btn-reply {transform: rotateX(0deg);}
70
Added:
.btn-finish {
71
Added:
height: 3rem;
72
Added:
width: calc(50% - 1rem);
73
Added:
position: absolute;
74
Added:
right: 0;
75
Added:
background: var(--no);
76
Added:
border-radius: 8px;
77
Added:
transform: rotateX(90deg);
78
Added:
transition-duration: var(--slow-speed);
79
Added:
transform-origin: bottom;
80
Added:
}
81
Added:
.conversation-wrapper:hover > .btn-finish {transform: rotateX(0deg);}
82
Added:
.conversation {
83
Added:
height: 40%;
84
Added:
width: 100%;
85
Added:
position: relative;
55
86
background: white;
56
Removed:
border-radius: 14px;
57
Removed:
padding: 1rem;
58
Removed:
margin: 0.5rem;
87
Added:
border-radius: 12px;
88
Added:
overflow: hidden;
89
Added:
transition-duration: var(--med-speed);
59
90
}
60
Removed:
.message:hover {
61
Removed:
background: linear-gradient(to left, var(--no) 50%, var(--yes) 50%);
62
Removed:
cursor: pointer;
63
Removed:
transition: 0.8s;
64
Removed:
color: white;
91
Added:
.conversation-wrapper:hover > .conversation {
92
Added:
margin-top: 3.5rem;
93
Added:
overflow: auto;
65
94
}
95
Added:
.input[type=text] {
96
Added:
width: 70%;
97
Added:
position: relative;
98
Added:
margin: 0 auto;
99
Added:
/* transform: rotateX(-90deg); */
100
Added:
transition-duration: var(--slow-speed);
101
Added:
transform-origin: top;
102
Added:
}
103
Added:
conversation-wrapper:hover > .input[type=text] {
104
Added:
transform: rotateX(90deg);
105
Added:
width: 20%;
106
Added:
}
66
107
67
108
.feed-news {
68
109
height: 100%;
69
Removed:
width: 55%;
110
Added:
width: 50%;
70
111
display: flex;
71
112
position: relative;
72
113
float: left;
@@ -74,27 +115,63 @@
74
115
overflow: auto;
75
116
justify-content: space-between;
76
117
}
118
Added:
.news-wrapper {
119
Added:
/* background: blue; */
120
Added:
height: 25%;
121
Added:
max-width: 40%;
122
Added:
position: relative;
123
Added:
margin: 1rem;
124
Added:
overflow: hidden;
125
Added:
perspective: 600px;
126
Added:
}
127
Added:
.news-wrapper:hover {
128
Added:
height: 25%;
129
Added:
transition-duration: var(--med-speed);
130
Added:
}
77
131
.news {
78
Removed:
max-height: 10%;
79
Removed:
max-width: 50%;
132
Added:
height: 100%;
133
Added:
max-width: 100%;
80
134
background: white;
81
135
position: relative;
82
136
border-radius: 14px;
83
Removed:
padding: 1rem;
84
Removed:
margin: 0.5rem;
85
137
overflow: hidden;
138
Added:
transition-duration: var(--med-speed);
86
139
}
87
Removed:
.news:hover {
88
Removed:
background: linear-gradient(to left, var(--no) 50%, var(--yes) 50%);
89
Removed:
cursor: pointer;
90
Removed:
transition: 0.8s;
91
Removed:
color: white;
140
Added:
.news-wrapper:hover > .news {
92
141
overflow: auto;
93
142
}
143
Added:
.btn-comment {
144
Added:
height: 3rem;
145
Added:
width: calc(50% - 1rem);
146
Added:
position: absolute;
147
Added:
left: 0;
148
Added:
background: var(--home);
149
Added:
border-radius: 8px;
150
Added:
transform: rotateX(90deg);
151
Added:
transition-duration: var(--slow-speed);
152
Added:
transform-origin: bottom;
153
Added:
}
154
Added:
.news-wrapper:hover > .btn-comment {transform: rotateX(0deg);}
155
Added:
.btn-archive {
156
Added:
height: 3rem;
157
Added:
width: calc(50% - 1rem);
158
Added:
position: absolute;
159
Added:
right: 0;
160
Added:
background: var(--no);
161
Added:
border-radius: 8px;
162
Added:
transform: rotateX(90deg);
163
Added:
transition-duration: var(--slow-speed);
164
Added:
transform-origin: bottom;
165
Added:
}
166
Added:
.news-wrapper:hover > .btn-archive {transform: rotateX(0deg);}
167
Added:
.news-wrapper:hover > .news {
168
Added:
margin-top: 3.5rem;
169
Added:
overflow: auto;
170
Added:
}
94
171
95
172
.feed-ads {
96
Removed:
height: 100%;
97
173
width: 20%;
174
Added:
height: 100%;
98
175
position: relative;
99
176
float: right;
100
177
overflow: auto;
app/templates/home.html
@@ -4,9 +4,7 @@
4
4
{% extends "base.html" %}
5
5
{% block content %}
6
6
7
Removed:
<!-- 'Yes' tab -->
8
7
<a href="{{ url_for('yes') }}" class="tab-yes"></a>
9
Removed:
<!-- 'No' tab -->
10
8
<a href="{{ url_for('no') }}" class="tab-no"></a>
11
9
12
10
<div class="feed-post">
app/templates/yes.html
@@ -4,61 +4,78 @@
4
4
{% extends "base.html" %}
5
5
{% block content %}
6
6
7
Removed:
<div>
8
Removed:
<a href="{{ url_for('no') }}" class="tab-no"></a>
9
Removed:
<a href="{{ url_for('home') }}" class="tab-home"></a>
7
Added:
<a href="{{ url_for('no') }}" class="tab-no"></a>
8
Added:
<a href="{{ url_for('home') }}" class="tab-home"></a>
10
9
11
Removed:
<div class="main">
10
Added:
<div class="feeds">
11
Added:
<div class="feed-conversations">
12
Added:
{% for conversation in conversations %}
13
Added:
<div class="conversation-wrapper">
14
Added:
<a href="{{ url_for('yes') }}" class="btn-reply">reply</a>
15
Added:
<a href="{{ url_for('yes') }}" class="btn-finish">finish conversation</a>
16
Added:
<div class="conversation">
17
Added:
{% if 'title' in conversation %}
18
Added:
<h1>{{conversation.title}}</h1>
19
Added:
{% endif %}
20
Added:
<!-- {% for message in conversation.messages %} -->
21
Added:
<!-- <h2>{{ message }}</h2> -->
22
Added:
<!-- {% endfor %} -->
23
Added:
<div class="message-received">
24
Added:
<h2>author 1</h2>
25
Added:
<p> message received </p>
26
Added:
</div>
27
Added:
<div class="message-sent">
28
Added:
<h2>me</h2>
29
Added:
<p> message received </p>
30
Added:
</div>
31
Added:
<div class="message-received">
32
Added:
<h2>author 1</h2>
33
Added:
<p> message received </p>
34
Added:
</div>
35
Added:
<div class="message-sent">
36
Added:
<h2>me</h2>
37
Added:
<p> message received </p>
38
Added:
</div>
39
Added:
<div class="message-received">
40
Added:
<h2>author 1</h2>
41
Added:
<p> message received </p>
42
Added:
</div>
43
Added:
<div class="message-sent">
44
Added:
<h2>me</h2>
45
Added:
<p> last message received </p>
46
Added:
</div>
12
47
13
Removed:
<div class="feed-message">
14
Removed:
{% for message in messages %}
15
Removed:
<div class="message">
16
Removed:
<h1>{{message.author}}</h1>
17
Removed:
<h2>{{message.date}}</h2>
18
Removed:
<p>{{message.content}}</p>
19
48
</div>
20
Removed:
{% endfor %}
49
Added:
<input class="message-reply" name="Reply" type="text" value="reply"/>
21
50
</div>
51
Added:
{% endfor %}
52
Added:
<!-- <a href="{{ url_for('yes') }}" class="input">reply</a> -->
53
Added:
</div>
22
54
23
Removed:
<div class="feed-news">
24
Removed:
{% for news in news %}
55
Added:
<div class="feed-news">
56
Added:
{% for news in news %}
57
Added:
<div class="news-wrapper">
58
Added:
<a href="{{ url_for('yes') }}" class="btn-comment">comment</a>
59
Added:
<a href="{{ url_for('yes') }}" class="btn-archive">archive</a>
25
60
<div class="news">
26
61
<h1>{{news.author}}</h1>
27
62
<h2>{{news.date}}</h2>
28
63
<p>{{news.content}}</p>
29
64
</div>
30
Removed:
{% endfor %}
31
65
</div>
66
Added:
{% endfor %}
67
Added:
</div>
32
68
33
Removed:
<div class="feed-ads">
34
Removed:
<div class="ad">
35
Removed:
Buy my sourdough, ah
36
Removed:
</div>
37
Removed:
<div class="ad">
38
Removed:
Check out this sponsored link, ere.
39
Removed:
</div>
40
Removed:
<div class="ad">
41
Removed:
Another random ad (from a high-paying sponsor hopefully)
42
Removed:
</div>
43
Removed:
<div class="ad">
44
Removed:
Ah I literally don't have any other placeholder ideas for ads.
45
Removed:
</div>
46
Removed:
<div class="ad">
47
Removed:
Buy my sourdough, ah
48
Removed:
</div>
49
Removed:
<div class="ad">
50
Removed:
Check out this sponsored link, ere.
51
Removed:
</div>
52
Removed:
<div class="ad">
53
Removed:
Another random ad (from a high-paying sponsor hopefully)
54
Removed:
</div>
55
Removed:
<div class="ad">
56
Removed:
Ah I literally don't have any other placeholder ideas for ads.
57
Removed:
</div>
58
Removed:
</div>
59
Removed:
</div>
69
Added:
<div class="feed-ads">
70
Added:
<div class="ad"> Buy my sourdough, ah </div>
71
Added:
<div class="ad"> Check out this sponsored link, ere. </div>
72
Added:
<div class="ad"> Another random ad (from a high-paying sponsor hopefully) </div>
73
Added:
<div class="ad"> Ah I literally don't have any other placeholder ideas for ads. </div>
74
Added:
<div class="ad"> Buy my sourdough, ah </div>
75
Added:
<div class="ad"> Check out this sponsored link, ere. </div>
76
Added:
<div class="ad"> Another random ad (from a high-paying sponsor hopefully) </div>
77
Added:
<div class="ad"> Ah I literally don't have any other placeholder ideas for ads. </div>
60
78
</div>
61
79
</div>
62
Removed:
63
80
64
81
{% endblock content %}