Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Overall App Enhancements - Major Overhaul #30

Merged
merged 25 commits into from
Feb 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
7fb68ce
Fix: Enhanced PWA (#25)
hoangsonww Feb 21, 2024
f17b9ec
Fix: Enhanced homepage (#28)
hoangsonww Feb 21, 2024
29547d8
Fix: Enhanced homepage
hoangsonww Feb 21, 2024
4d97eb1
Fix: Enhanced homepage
hoangsonww Feb 21, 2024
737f79f
Fix: Enhanced homepage
hoangsonww Feb 21, 2024
2ef226b
Fix: Enhanced homepage
hoangsonww Feb 21, 2024
f26aab9
Fix: Fixed homepage bugs (#28)
hoangsonww Feb 21, 2024
ad77fd1
Fix: Fixed homepage styling (#28)
hoangsonww Feb 21, 2024
cea044f
Fix: Fixed homepage styling (#28)
hoangsonww Feb 21, 2024
f9c17d6
Fix: Fixed homepage (#28)
hoangsonww Feb 21, 2024
e3f3975
Fix: Fixed homepage (#28)
hoangsonww Feb 21, 2024
d7bd4db
Fix: Enhanced homepage (#28)
hoangsonww Feb 21, 2024
2822ba0
Fix: fixed homepage (#28)
hoangsonww Feb 21, 2024
c54d653
Fix: fixed homepage (#28)
hoangsonww Feb 21, 2024
545c41d
Fix: Fixed favorites page (#28)
hoangsonww Feb 21, 2024
11a3295
Fix: Fixed favorites page (#28)
hoangsonww Feb 21, 2024
8d7485d
Fix: Fixed favorites instructions (#27)
hoangsonww Feb 21, 2024
ac3f60c
Fix: Fixed favorites instructions (#27)
hoangsonww Feb 21, 2024
cbb0f4f
Fix: Fixed back to top logic (#28)
hoangsonww Feb 21, 2024
8b6de12
Fix: Fixed homepage btns (#28)
hoangsonww Feb 21, 2024
d6317f7
Fix: Updated project documentation (#28)
hoangsonww Feb 21, 2024
394edc3
Fix: Updated homepage btns (#28)
hoangsonww Feb 21, 2024
f92bdce
Fix: Updated about buttons (#28)
hoangsonww Feb 21, 2024
780c549
Fix: Updated backend (#28)
hoangsonww Feb 21, 2024
20961b4
Fix: Updated movie storage logic (#28)
hoangsonww Feb 21, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 12 additions & 15 deletions .github/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,27 +64,24 @@ There is also a mobile version of The MovieVerse, which is developed using Apach

## Project Structure

The MovieVerse is a full-stack application with a robust backend and a user-friendly frontend. The project is divided into the following **3 primary** directories:
The MovieVerse is a full-stack application with a robust backend and a user-friendly frontend. The project is divided into the following **3 main** directories:
1. `MovieVerse-Backend`: The backend directory contains the server-side code, including the API, database, and server configuration.
2. `MovieVerse-Frontend`: The frontend directory contains the client-side code, including the user interface, user experience, and client configuration.
3. `MovieVerse-Mobile`: The mobile app directory contains the mobile application code, including the mobile user interface, user experience, and mobile client configuration.

## Technology Stack

| Frontend Technologies | Backend Technologies | Database Technologies | Mobile App Development | Additional Technologies |
|-----------------------------------------------------------|------------------------------------------------------------------|-------------------------------------------------|-------------------------------------------------------------------|-----------------------------------------------------------------|
| [React](https://reactjs.org/) | [Node.js](https://nodejs.org/en/) | [MongoDB](https://www.mongodb.com/) | [Apache Cordova](https://cordova.apache.org/) | [Webpack](https://webpack.js.org/) |
| [Vue](https://vuejs.org/) | [Express](https://expressjs.com/) | [MySQL](https://www.mysql.com/) | [React Native](https://reactnative.dev/) | [Babel](https://babeljs.io/) |
| [HTML5](https://html.com/) | [Django](https://www.djangoproject.com/) | [Google Firebase](https://firebase.google.com/) | [Swift (for iOS development)](https://developer.apple.com/swift/) | [Docker](https://www.docker.com/) |
| [CSS3](https://www.w3.org/Style/CSS/Overview.en.html) | [Django REST Framework](https://www.django-rest-framework.org/) | | | [Emscripten](https://emscripten.org/) |
| [JavaScript (Vanilla JS)](http://vanilla-js.com/) | [Flask](https://flask.palletsprojects.com/en/1.1.x/) | | | [WebAssembly](https://webassembly.org/) |
| [TypeScript](https://www.typescriptlang.org/) | [Flask RESTful](https://flask-restful.readthedocs.io/en/latest/) | | | [C](https://en.wikipedia.org/wiki/C_(programming_language)) |
| [Bootstrap](https://getbootstrap.com/) | [Python](https://www.python.org/) | | | [Google Analytics](https://analytics.google.com/analytics/web/) |
| [React Bootstrap](https://react-bootstrap.github.io/) | [Java](https://www.java.com/en/) | | | [ESLint](https://eslint.org/) |
| [React Icons](https://react-icons.github.io/react-icons/) | [GraphQL](https://graphql.org/) | | | |
| [SASS](https://sass-lang.com/) | [Ruby on Rails](https://rubyonrails.org/) | | | |
| [Single Spa](https://single-spa.js.org/) | [C (Emscripten, WebAssembly)](https://emscripten.org/) | | | |
| [Redux](https://redux.js.org/) | [JavaScript](https://www.javascript.com/) | | | |
| Frontend Technologies | Backend Technologies | Database Technologies | Mobile App Development | Additional Technologies |
|-----------------------------------------------------------------|-----------------------------------------------------------------|-------------------------------------------------|-------------------------------------------------------------------|-----------------------------------------------------------------|
| [React](https://reactjs.org/) | [Node.js](https://nodejs.org/en/) | [MongoDB](https://www.mongodb.com/) | [Apache Cordova](https://cordova.apache.org/) | [Webpack](https://webpack.js.org/) |
| [Vue](https://vuejs.org/) | [Express](https://expressjs.com/) | [MySQL](https://www.mysql.com/) | [React Native](https://reactnative.dev/) | [Babel](https://babeljs.io/) |
| [HTML5](https://html.com/) | [Django](https://www.djangoproject.com/) | [Google Firebase](https://firebase.google.com/) | [Swift (for iOS development)](https://developer.apple.com/swift/) | [Docker](https://www.docker.com/) |
| [CSS3](https://www.w3.org/Style/CSS/Overview.en.html) | [Django REST Framework](https://www.django-rest-framework.org/) | | [Kotlin (for Android)](https://kotlinlang.org/) | [Emscripten](https://emscripten.org/) |
| [JavaScript (Vanilla JS)](http://vanilla-js.com/) | [Flask](https://flask.palletsprojects.com/en/1.1.x/) | | [Java (for Android)](https://www.java.com/en/) | [WebAssembly](https://webassembly.org/) |
| [TypeScript](https://www.typescriptlang.org/) | [Python](https://www.python.org/) | | | [Google Analytics](https://analytics.google.com/analytics/web/) |
| [FontAwesome Icons](https://react-icons.github.io/react-icons/) | [Ruby on Rails](https://rubyonrails.org/) | | | [ESLint](https://eslint.org/) |
| [SASS](https://sass-lang.com/) | [C (Emscripten, WebAssembly)](https://emscripten.org/) | | | [Git](https://git-scm.com/) |
| [Single Spa](https://single-spa.js.org/) | [JavaScript](https://www.javascript.com/) | | | |


## Contributing
Expand Down
2 changes: 1 addition & 1 deletion 404.html
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ <h1 id="stats-display" class="clock"></h1>

<button class="back-btn" onclick="window.location.href='index.html'" title="Go back to homepage">Home</button>
<button class="about" onclick="window.location.href='MovieVerse-Frontend/html/about.html'" title="About this wonderful app!">About</button>
<button class="favorites-btn" onclick="window.location.href='MovieVerse-Frontend/html/favorites.html'" title="Go to your favorites list">Favorites</button>
<button class="favorites-btn" onclick="window.location.href='MovieVerse-Frontend/html/favorites.html'" title="View your favorites & watchlists">Favorites</button>
<button id="googleSignInBtn" class="nav-btn" onclick="handleSignInOut()" title="Sign In/Out">
<span id="signInOutText">Sign In</span>
<i class="fas fa-sign-in-alt" id="signInIcon"></i>
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
23 changes: 23 additions & 0 deletions MovieVerse-Databases/firebase.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"hosting": {
"public": "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
},
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
"storage": {
"rules": "storage.rules"
}
}
59 changes: 59 additions & 0 deletions MovieVerse-Databases/firestore.indexes.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
{
"indexes": [
{
"collectionGroup": "movies",
"queryScope": "COLLECTION",
"fields": [
{ "fieldPath": "genre", "order": "ASCENDING" },
{ "fieldPath": "releaseYear", "order": "ASCENDING" }
]
},
{
"collectionGroup": "directors",
"queryScope": "COLLECTION",
"fields": [
{ "fieldPath": "name", "order": "ASCENDING" }
],
"fieldOverrides": [
{
"fieldPath": "name",
"arrayConfig": "CONTAINS"
}
]
},
{
"collectionGroup": "actors",
"queryScope": "COLLECTION",
"fields": [
{ "fieldPath": "name", "order": "ASCENDING" }
],
"fieldOverrides": [
{
"fieldPath": "name",
"arrayConfig": "CONTAINS"
}
]
},
{
"collectionGroup": "users",
"queryScope": "COLLECTION",
"fields": [
{ "fieldPath": "name", "order": "ASCENDING" }
],
"fieldOverrides": [
{
"fieldPath": "name",
"arrayConfig": "CONTAINS"
}
]
},
{
"collectionGroup": "reviews",
"queryScope": "COLLECTION",
"fields": [
{ "fieldPath": "rating", "order": "ASCENDING" }
]
}
],
"fieldOverrides": []
}
8 changes: 8 additions & 0 deletions MovieVerse-Databases/firestore.rules
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
service cloud.firestore {
match /databases/{database}/documents {
match /movies/{movie} {
allow read: if true;
allow write: if request.auth != null;
}
}
}
8 changes: 8 additions & 0 deletions MovieVerse-Databases/storage.rules
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
service firebase.storage {
match /b/{bucket}/o {
match /moviePosters/{poster} {
allow read: if true;
allow write: if request.auth != null;
}
}
}
3 changes: 2 additions & 1 deletion MovieVerse-Frontend/css/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -1168,7 +1168,7 @@ p {
}

.app-btn {
background-color: #534caf;
background-color: #7378c5;
border: 1px solid #ddd;
border-radius: 8px;
padding: 10px 15px;
Expand All @@ -1179,6 +1179,7 @@ p {
display: block;
width: auto;
margin: 10px auto;
transition: 0.1s ease-in;
}

.clock {
Expand Down
22 changes: 17 additions & 5 deletions MovieVerse-Frontend/html/about.html
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@

gtag('config', 'G-CQKJ67FXZ4');
</script>

<style>
#local-time {
transform: translateX(15%);
Expand All @@ -68,7 +69,7 @@ <h1 id="stats-display" class="clock"></h1>

<button class="back-btn" onclick="window.location.href='../../index.html'">Home</button>
<button class="about" onclick="window.location.href='about.html'">About</button>
<button class="favorites-btn" onclick="window.location.href='favorites.html'" title="Go to your favorites list">Favorites</button>
<button class="favorites-btn" onclick="window.location.href='favorites.html'" title="View your favorites & watchlists">Favorites</button>
<button id="googleSignInBtn" class="nav-btn" onclick="handleSignInOut()" title="Sign In/Out">
<span id="signInOutText">Sign In</span>
<i class="fas fa-sign-in-alt" id="signInIcon"></i>
Expand Down Expand Up @@ -158,7 +159,7 @@ <h3 id="subheading">Join The Journey:</h3>
<p style="color: white; text-align: center"><em>Thank you for being a part of The MovieVerse. For more insights and updates, connect with us on our <a style="text-decoration: underline" id="githubLink" href="https://github.com/hoangsonww/The-MovieVerse-Database">GitHub page</a>.</em></p>

<h3 id="subheading">Useful Links:</h3>
<p style="color: white">Here are some links that you might find useful. You can explore the analytics page of our database (<strong style="text-decoration: underline">MovieVerse Analytics</strong>), read our <strong style="text-decoration: underline">terms of service</strong>, and review our <strong style="text-decoration: underline">privacy policy</strong>. Feel free to reach out to us if you have any questions or concerns.</p>
<p style="color: white">Here are some links that you might find useful. You can explore the analytics page of our database (<a href="analytics.html" style="color: white"><strong style="text-decoration: underline">MovieVerse Analytics</strong></a>), read our <a href="terms-of-service.html" style="color: white"><strong style="text-decoration: underline">terms of service</strong></a>, and review our <a href="privacy-policy.html" style="color: white"><strong style="text-decoration: underline">privacy policy</strong></a>. Feel free to reach out to us if you have any questions or concerns.</p>

<button onclick="window.location.href='analytics.html'" style="border: none; margin-top: 40px" class="app-btn">MovieVerse Analytics</button>
<button onclick="window.location.href='terms-of-service.html'" style="border: none; margin-top: 40px" class="app-btn">Terms of Service</button>
Expand Down Expand Up @@ -255,6 +256,7 @@ <h3 id="subheading">Useful Links:</h3>

document.addEventListener("DOMContentLoaded", function() {
updateSignInButtonState();
setBodyClass();
document.getElementById('googleSignInBtn').addEventListener('click', handleSignInOut);
});

Expand Down Expand Up @@ -285,9 +287,6 @@ <h3 id="subheading">Useful Links:</h3>
}
});

/**
* Rotates the user stats and movie quotes displayed in the main element.
*/
function rotateUserStats() {
const stats = [
{
Expand Down Expand Up @@ -463,6 +462,19 @@ <h3 id="subheading">Useful Links:</h3>
localStorage.setItem('searchQuery', searchQuery);
window.location.href = 'search.html';
}

function setBodyClass() {
if (window.innerWidth < 768) {
document.body.classList.remove('movie-details-body');
document.body.classList.add('movie-details-body4');
}
else {
document.body.classList.remove('movie-details-body4');
document.body.classList.add('movie-details-body');
}
}

window.addEventListener('resize', setBodyClass);
</script>
</body>
</html>
8 changes: 4 additions & 4 deletions MovieVerse-Frontend/html/actor-details.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Actor Details</title>
<title>Actor Details - The MovieVerse</title>
<link rel="stylesheet" href="../css/style.css">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta property="og:locale" content="en_US" />
<meta property="og:type" content="website" />
<meta http-equiv="content-language" content="en" />
<meta property="og:description" content="Explore The MovieVerse to discover and learn about your favorite movies, directors, actors, and more." />
<meta property="og:url" content="https://movie-verse.com/MovieVerse-Frontend/html/about.html" />
<meta property="og:site_name" content="About The MovieVerse" />
<meta property="og:url" content="https://movie-verse.com/" />
<meta property="og:site_name" content="The MovieVerse" />
<meta property="og:image" content="https://movie-verse.com/images/image.png"/>
<meta property="og:favicon" content="./images/favicon.ico" />
<meta name="keywords" content="movies, film guide, directors, actors, movie genres, cinema, film reviews">
Expand Down Expand Up @@ -54,7 +54,7 @@ <h1 id="stats-display" class="clock"></h1>
</div>
<button class="back-btn" onclick="window.location.href='../../index.html'">Home</button>
<button class="about" onclick="window.location.href='about.html'">About</button>
<button class="favorites-btn" onclick="window.location.href='favorites.html'" title="Go to your favorites list">Favorites</button>
<button class="favorites-btn" onclick="window.location.href='favorites.html'" title="View your favorites & watchlists">Favorites</button>
<button id="googleSignInBtn" class="nav-btn" onclick="handleSignInOut()" title="Sign In/Out">
<span id="signInOutText">Sign In</span>
<i class="fas fa-sign-in-alt" id="signInIcon"></i>
Expand Down
6 changes: 3 additions & 3 deletions MovieVerse-Frontend/html/analytics.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
<meta property="og:type" content="website" />
<meta http-equiv="content-language" content="en" />
<meta property="og:description" content="Explore The MovieVerse to discover and learn about your favorite movies, directors, actors, and more." />
<meta property="og:url" content="https://movie-verse.com/MovieVerse-Frontend/html/about.html" />
<meta property="og:site_name" content="About The MovieVerse" />
<meta property="og:url" content="https://movie-verse.com/" />
<meta property="og:site_name" content="The MovieVerse" />
<meta property="og:image" content="https://movie-verse.com/images/image.png"/>
<meta property="og:favicon" content="./images/favicon.ico" />
<meta name="keywords" content="movies, film guide, directors, actors, movie genres, cinema, film reviews">
Expand Down Expand Up @@ -55,7 +55,7 @@ <h1 id="stats-display" class="clock"></h1>

<button class="back-btn nav-btn" onclick="window.location.href='../../index.html'" title="Go back to homepage">Home</button>
<button class="about nav-btn" onclick="window.location.href='about.html'" title="About this wonderful app!">About</button>
<button class="favorites-btn nav-btn" onclick="window.location.href='favorites.html'" title="Go to your favorites list">Favorites</button>
<button class="favorites-btn" onclick="window.location.href='favorites.html'" title="View your favorites & watchlists">Favorites</button>
<button id="googleSignInBtn" class="nav-btn" onclick="handleSignInOut()" title="Sign In/Out">
<span id="signInOutText">Sign In</span>
<i class="fas fa-sign-in-alt" id="signInIcon"></i>
Expand Down
Loading
Loading