Skip to content
Merged

Dev #86

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
113 commits
Select commit Hold shift + click to select a range
28a9fc7
Project setup done
sakibul-shovon Aug 20, 2025
5bf77c2
Add API routes and configure Laravel Passport
plasma-gith Aug 22, 2025
09f3677
Add user ban/unban functionality to admin API
plasma-gith Aug 22, 2025
7cd64b0
Merge pull request #18 from RedPill-Team/#12-Login-System
plasma-gith Aug 22, 2025
04f64c4
Add authentication and routing to React frontend
plasma-gith Aug 22, 2025
2b60fa9
Merge pull request #20 from RedPill-Team/#19-Registration-and-login-page
plasma-gith Aug 22, 2025
323d1e3
Prevent banning of admin users
plasma-gith Aug 22, 2025
ee0f40d
Merge pull request #22 from RedPill-Team/#21-Ban-permission-issue
plasma-gith Aug 22, 2025
23c32e7
feat: implement user interactions, search, and recommendation system
plasma-gith Aug 22, 2025
5ef15ca
Add movie seeder
plasma-gith Aug 25, 2025
51d25c0
Merge pull request #26 from RedPill-Team/#25-Implement-Movie-Model-Us…
plasma-gith Aug 25, 2025
7ff3884
Fixed topratedmovies seeder
plasma-gith Aug 25, 2025
82c593b
Merge pull request #28 from RedPill-Team/27-fix-import-movie-seeder
plasma-gith Aug 25, 2025
7a4c6b8
Add Tailwind CSS setup to frontend
sakibul-shovon Aug 25, 2025
1537f40
Redesign Login and Register pages with Tailwind CSS
sakibul-shovon Aug 25, 2025
82e79b0
Merge pull request #29 from RedPill-Team/17-navbar-and-theme
sakibul-shovon Aug 25, 2025
b0a2483
Add reviews, comments, likes, and genre features
plasma-gith Sep 5, 2025
310e181
Add reviews, comments, likes, and genre features
plasma-gith Sep 5, 2025
8ef20ba
Update trending films API endpoint
plasma-gith Sep 5, 2025
091d23d
Add movie and review details pages with API enhancements
plasma-gith Sep 5, 2025
2879391
Merge pull request #36 from RedPill-Team/32-feat-implement-movie-deta…
plasma-gith Sep 5, 2025
516c1ad
Merge pull request #36 from RedPill-Team/32-feat-implement-movie-deta…
plasma-gith Sep 5, 2025
feeee45
Merge pull request #36 from RedPill-Team/32-feat-implement-movie-deta…
plasma-gith Sep 5, 2025
eda1b5b
Couldn't fix the issue
plasma-gith Sep 5, 2025
b38a8b0
Merge pull request #38 from RedPill-Team/37-bug-fix-like-button-issues
plasma-gith Sep 5, 2025
ed09826
Implement movie assistant chatbot
sakibul-shovon Sep 6, 2025
5ce8c26
Merge branch 'dev' into 35-feat-implement-context-based-chatbot
sakibul-shovon Sep 6, 2025
137cb7f
Merge pull request #39 from RedPill-Team/35-feat-implement-context-ba…
sakibul-shovon Sep 6, 2025
2917d34
feat: connect frontend movie and review pages to backend API
sakibul-shovon Sep 6, 2025
0a7083a
Update Chatbot.tsx
sakibul-shovon Sep 7, 2025
ecbacba
Couldn't fix the issue
plasma-gith Sep 5, 2025
22fd07e
Merge branch 'dev' into 30-fully-functional-landing-page
sakibul-shovon Sep 7, 2025
fe15825
Merge pull request #41 from RedPill-Team/30-fully-functional-landing-…
sakibul-shovon Sep 7, 2025
060e148
Add search and watchlist features to app
ariful-islam01 Sep 12, 2025
4e77780
Merge pull request #42 from RedPill-Team/30-fully-functional-landing-…
ariful-islam01 Sep 12, 2025
d2ee5eb
feat(movie-details): implement AI-powered movie summary feature
sakibul-shovon Sep 12, 2025
3d1a639
Merge pull request #45 from RedPill-Team/43-feature-ai-movie-summary
sakibul-shovon Sep 12, 2025
716e204
fix design flow
sakibul-shovon Sep 13, 2025
0430723
feat(profile): Implement user profile page and API integration - Add…
sakibul-shovon Sep 14, 2025
a097dfa
Merge pull request #48 from RedPill-Team/46-user-profile-page-backend…
sakibul-shovon Sep 14, 2025
f9040a2
Fix TypewriterEfferct issue.
sakibul-shovon Sep 14, 2025
4296c51
feat: Implement watchlist feature in user profile
sakibul-shovon Sep 14, 2025
059a303
Merge pull request #51 from RedPill-Team/50-feature-add-to-watchlist
sakibul-shovon Sep 14, 2025
f26e065
review and comment done
sakibul-shovon Sep 15, 2025
1247053
edit and delete
sakibul-shovon Sep 15, 2025
421379b
Add user friendship system with search and UI integration
plasma-gith Sep 15, 2025
be5d36d
Merge pull request #54 from RedPill-Team/53-feat-friends-system-integ…
plasma-gith Sep 15, 2025
434df0c
Merge branch 'dev' into 52-feat-review-frontend
sakibul-shovon Sep 15, 2025
33e54c0
Merge pull request #56 from RedPill-Team/52-feat-review-frontend
sakibul-shovon Sep 15, 2025
6bc7280
Add search_histories migration and wrap App with AuthProvider
sakibul-shovon Sep 15, 2025
7f596e5
Refactor navigation and UI, add placeholder routes
sakibul-shovon Sep 16, 2025
74ea14d
Merge pull request #59 from RedPill-Team/58-routing-issue-fix
sakibul-shovon Sep 16, 2025
f4a107a
Test deployment updates for backend
plasma-gith Sep 16, 2025
d9f202a
dummy
plasma-gith Sep 16, 2025
a255318
dummy 2
plasma-gith Sep 16, 2025
242505d
dummy 3
plasma-gith Sep 16, 2025
927e2ab
dummy 4
plasma-gith Sep 16, 2025
10cf7d0
dummy 5
plasma-gith Sep 16, 2025
5737fdb
dummy 6
plasma-gith Sep 16, 2025
8fd73a8
docker backend
plasma-gith Sep 16, 2025
28b3653
render trial
plasma-gith Sep 16, 2025
64ff2e2
render trial 2
plasma-gith Sep 17, 2025
fb4765b
render trial 3
plasma-gith Sep 17, 2025
e9bef74
render trial 3.1
plasma-gith Sep 17, 2025
d1b82f6
render trial 3.2
plasma-gith Sep 17, 2025
6d976a7
render trial 3.3
plasma-gith Sep 17, 2025
006f2c1
render trial 3.4
plasma-gith Sep 17, 2025
4956571
Deployment done and code refactored
plasma-gith Sep 17, 2025
5140aef
ban/unban
sakibul-shovon Sep 17, 2025
eb0bedd
Add CI/CD pipeline and update backend env example
plasma-gith Sep 17, 2025
1328a58
Update CI workflow and streamline backend .env.example
plasma-gith Sep 17, 2025
8f97fab
feat: Implement User Ban Management and Filter System
sakibul-shovon Sep 17, 2025
d5c5770
Improve layout of AdminDashboard filters
sakibul-shovon Sep 17, 2025
10e5fc5
Redirect non-admin users from AdminDashboard
sakibul-shovon Sep 17, 2025
da947d1
Merge pull request #63 from RedPill-Team/62-feature-ban-unban-users-f…
plasma-gith Sep 17, 2025
220cae4
Add Vercel rewrite config for SPA routing
plasma-gith Sep 17, 2025
87e4e4c
Add movie quiz feature with modal and scoring
sakibul-shovon Sep 17, 2025
804a8a9
Enhance search with filters, sorting, and UI improvements
plasma-gith Sep 17, 2025
60d19f7
Merge pull request #65 from RedPill-Team/34-feat-implement-advanced-s…
plasma-gith Sep 17, 2025
776f047
Merge pull request #67 from RedPill-Team/64-movie-quiz-feature
sakibul-shovon Sep 18, 2025
c61b1ff
admin system done
sakibul-shovon Sep 18, 2025
15aa5cb
Add forum feature with posts, comments, and likes
plasma-gith Sep 18, 2025
5f44be6
Merge pull request #70 from RedPill-Team/69-feat-add-forum-post-features
plasma-gith Sep 18, 2025
fd4132a
Merge pull request #71 from RedPill-Team/68-implement-admin-roles-man…
plasma-gith Sep 18, 2025
864a929
Add forum page and Improve responsive design and theming across UI
sakibul-shovon Sep 18, 2025
86378aa
Merge pull request #73 from RedPill-Team/72-forum-page-backend-and-fr…
sakibul-shovon Sep 18, 2025
a5604dc
Add watch and watched movies API and integrate watched status in UI
sakibul-shovon Sep 19, 2025
1a1d6ea
Merge pull request #75 from RedPill-Team/74-title-implement-movie-wat…
sakibul-shovon Sep 19, 2025
aea05f0
Enhance forum UI with pagination and user avatars
sakibul-shovon Sep 19, 2025
00b04db
Merge pull request #77 from RedPill-Team/76-feat-add-recent-reviews-i…
sakibul-shovon Sep 19, 2025
0266051
Add recent reviews section and redesign review details
sakibul-shovon Sep 19, 2025
e54237c
Add comment editing, review actions, and pagination UI
sakibul-shovon Sep 19, 2025
8638164
Merge pull request #79 from RedPill-Team/78-feat-add-recent-reviews-t…
sakibul-shovon Sep 19, 2025
7b92c3d
Update ReviewDetails.jsx
borsha0510 Sep 19, 2025
336adab
Merge pull request #81 from RedPill-Team/80-feat-redesign-movie-detai…
borsha0510 Sep 19, 2025
4b16ba4
Add user profile visit and friend profile viewing
plasma-gith Sep 19, 2025
2a36f59
Add user reviews and forum posts sections to profile
plasma-gith Sep 19, 2025
8009b3b
Add friend activity feed and improve forum features
plasma-gith Sep 19, 2025
2a5efba
Refactor friends API and UI for normalized friend data
plasma-gith Sep 19, 2025
2079ec2
Remove debug console.log statements from Friends page
plasma-gith Sep 19, 2025
864b154
Refactor forum and activity feeds, update admin dashboard
plasma-gith Sep 19, 2025
28c78e5
Merge pull request #84 from RedPill-Team/66-feat-activity-log-for-fri…
plasma-gith Sep 19, 2025
eb33aaf
Move /watched route definition for clarity
plasma-gith Sep 19, 2025
c03100a
Merge branch 'dev' of https://github.com/RedPill-Team/RedPill into dev
plasma-gith Sep 19, 2025
2f0cf55
Remove obsolete API docs and Watchlist backup file
plasma-gith Sep 19, 2025
ff68875
Refactor review details and comments components
plasma-gith Sep 20, 2025
ecde378
Comment out user rating and rating widget in MovieDetails
plasma-gith Sep 20, 2025
4c7c3ac
Update fallback image for missing backdrops
plasma-gith Sep 20, 2025
fba390c
Refactor image URL functions in Landing.jsx
plasma-gith Sep 20, 2025
70605ff
Add OTP email verification and password reset
ariful-islam01 Sep 20, 2025
b42d886
Merge branch 'dev' into #23-forgot-password-feature
plasma-gith Sep 20, 2025
2f7cb22
Merge pull request #85 from RedPill-Team/#23-forgot-password-feature
plasma-gith Sep 20, 2025
d37e21f
Update AdminDashboard.jsx
plasma-gith Sep 20, 2025
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
104 changes: 104 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
name: CI/CD Pipeline

on:
push:
branches: [ "dev" ]
pull_request:
branches: [ "dev" ]
workflow_dispatch: # allows manual trigger from GitHub Actions UI

jobs:
# ---------- FRONTEND ----------
frontend:
name: Frontend (React) Build & Test
runs-on: ubuntu-latest

defaults:
run:
working-directory: frontend

steps:
- name: Checkout repo
uses: actions/checkout@v3

- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18'

- name: Install dependencies
run: npm install

- name: Run tests
run: npm test --if-present

- name: Build
run: npm run build --if-present

# ---------- BACKEND ----------
backend:
name: Backend (Laravel) Test Suite
runs-on: ubuntu-latest

defaults:
run:
working-directory: backend

services:
mysql:
image: mysql:8
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: laravel_test
ports:
- 3306:3306
options: >-
--health-cmd="mysqladmin ping -h 127.0.0.1 --password=root"
--health-interval=10s
--health-timeout=5s
--health-retries=3

steps:
- name: Checkout repo
uses: actions/checkout@v3

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
extensions: mbstring, bcmath, intl, pdo_mysql
coverage: none

- name: Cache Composer dependencies
uses: actions/cache@v3
with:
path: vendor
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-php-

- name: Install Composer dependencies
run: composer install --no-progress --no-interaction --prefer-dist

- name: Prepare .env for CI
run: |
cp .env.example .env
echo "APP_ENV=testing" >> .env
echo "APP_DEBUG=true" >> .env
echo "CACHE_DRIVER=file" >> .env
echo "SESSION_DRIVER=file" >> .env
echo "QUEUE_CONNECTION=sync" >> .env
echo "DB_CONNECTION=mysql" >> .env
echo "DB_HOST=127.0.0.1" >> .env
echo "DB_PORT=3306" >> .env
echo "DB_DATABASE=laravel_test" >> .env
echo "DB_USERNAME=root" >> .env
echo "DB_PASSWORD=root" >> .env

- name: Generate app key
run: php artisan key:generate --ansi

- name: Run migrations
run: php artisan migrate --force

- name: Run tests
run: php artisan test
18 changes: 18 additions & 0 deletions backend/.editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
root = true

[*]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false

[*.{yml,yaml}]
indent_size = 2

[docker-compose.yml]
indent_size = 4
37 changes: 37 additions & 0 deletions backend/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# ---------------- App ----------------
APP_NAME=Laravel
APP_ENV=testing
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost

# ---------------- Cache / Session / Queue ----------------
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_CONNECTION=sync

# ---------------- Database ----------------
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_test
DB_USERNAME=root
DB_PASSWORD=root

# ---------------- Mail ----------------
MAIL_MAILER=smtp
MAIL_HOST=localhost
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=example@example.com
MAIL_FROM_NAME="Example"

# ---------------- AWS / Storage ----------------
FILESYSTEM_DISK=local
AWS_DEFAULT_REGION=us-east-1

# ---------------- Other ----------------
LOG_CHANNEL=stack
LOG_LEVEL=debug
11 changes: 11 additions & 0 deletions backend/.gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
* text=auto eol=lf

*.blade.php diff=html
*.css diff=css
*.html diff=html
*.md diff=markdown
*.php diff=php

/.github export-ignore
CHANGELOG.md export-ignore
.styleci.yml export-ignore
20 changes: 20 additions & 0 deletions backend/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/.phpunit.cache
/node_modules
/public/build
/public/hot
/public/storage
/storage/*.key
/vendor
.env
.env.backup
.env.production
.phpunit.result.cache
Homestead.json
Homestead.yaml
auth.json
npm-debug.log
yarn-error.log
/.fleet
/.idea
/.vscode
.rnd
Binary file added backend/.rnd
Binary file not shown.
38 changes: 38 additions & 0 deletions backend/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# 1. Base PHP image
FROM php:8.2-fpm

# 2. Set working directory
WORKDIR /var/www/html

# 3. Install system dependencies
RUN apt-get update && apt-get install -y \
git unzip libzip-dev libonig-dev libpng-dev libpq-dev curl zip openssl \
&& docker-php-ext-install pdo pdo_mysql zip mbstring gd \
&& rm -rf /var/lib/apt/lists/*

# 4. Install Composer
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer

# 5. Copy project files
COPY . .

# 6. Copy SSL certs
COPY storage/app/certs/ storage/app/certs/

# 7. Set permissions
RUN chown -R www-data:www-data storage bootstrap/cache \
&& chmod -R 775 storage bootstrap/cache

# 8. Install PHP dependencies
RUN composer install --optimize-autoloader --no-dev --no-interaction \
&& composer clear-cache

# 9. Entrypoint
COPY docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh

# 10. Expose port
EXPOSE 8000

# 11. Run entrypoint
ENTRYPOINT ["docker-entrypoint.sh"]
66 changes: 66 additions & 0 deletions backend/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<p align="center"><a href="https://laravel.com" target="_blank"><img src="https://raw.githubusercontent.com/laravel/art/master/logo-lockup/5%20SVG/2%20CMYK/1%20Full%20Color/laravel-logolockup-cmyk-red.svg" width="400" alt="Laravel Logo"></a></p>

<p align="center">
<a href="https://github.com/laravel/framework/actions"><img src="https://github.com/laravel/framework/workflows/tests/badge.svg" alt="Build Status"></a>
<a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/dt/laravel/framework" alt="Total Downloads"></a>
<a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/v/laravel/framework" alt="Latest Stable Version"></a>
<a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/l/laravel/framework" alt="License"></a>
</p>

## About Laravel

Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as:

- [Simple, fast routing engine](https://laravel.com/docs/routing).
- [Powerful dependency injection container](https://laravel.com/docs/container).
- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage.
- Expressive, intuitive [database ORM](https://laravel.com/docs/eloquent).
- Database agnostic [schema migrations](https://laravel.com/docs/migrations).
- [Robust background job processing](https://laravel.com/docs/queues).
- [Real-time event broadcasting](https://laravel.com/docs/broadcasting).

Laravel is accessible, powerful, and provides tools required for large, robust applications.

## Learning Laravel

Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework.

You may also try the [Laravel Bootcamp](https://bootcamp.laravel.com), where you will be guided through building a modern Laravel application from scratch.

If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Laracasts contains thousands of video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.

## Laravel Sponsors

We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the [Laravel Partners program](https://partners.laravel.com).

### Premium Partners

- **[Vehikl](https://vehikl.com/)**
- **[Tighten Co.](https://tighten.co)**
- **[WebReinvent](https://webreinvent.com/)**
- **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)**
- **[64 Robots](https://64robots.com)**
- **[Curotec](https://www.curotec.com/services/technologies/laravel/)**
- **[Cyber-Duck](https://cyber-duck.co.uk)**
- **[DevSquad](https://devsquad.com/hire-laravel-developers)**
- **[Jump24](https://jump24.co.uk)**
- **[Redberry](https://redberry.international/laravel/)**
- **[Active Logic](https://activelogic.com)**
- **[byte5](https://byte5.de)**
- **[OP.GG](https://op.gg)**

## Contributing

Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions).

## Code of Conduct

In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct).

## Security Vulnerabilities

If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [taylor@laravel.com](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed.

## License

The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).
28 changes: 28 additions & 0 deletions backend/app/Console/Kernel.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?php

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{
/**
* Define the application's command schedule.
*/
protected function schedule(Schedule $schedule): void
{
// $schedule->command('inspire')->hourly();
$schedule->command('movies:update-trending')->hourly();
}

/**
* Register the commands for the application.
*/
protected function commands(): void
{
$this->load(__DIR__.'/Commands');

require base_path('routes/console.php');
}
}
30 changes: 30 additions & 0 deletions backend/app/Exceptions/Handler.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?php

namespace App\Exceptions;

use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Throwable;

class Handler extends ExceptionHandler
{
/**
* The list of the inputs that are never flashed to the session on validation exceptions.
*
* @var array<int, string>
*/
protected $dontFlash = [
'current_password',
'password',
'password_confirmation',
];

/**
* Register the exception handling callbacks for the application.
*/
public function register(): void
{
$this->reportable(function (Throwable $e) {
//
});
}
}
Loading