Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗A modern, full-featured streaming platform for Nollywood films with comprehensive admin CMS, user authentication, and content management.
git clone <your-repo-url>
cd nollywood-media
npm install
.env file with your Supabase credentials:VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_anon_key
Run database migrations
The migrations in supabase/migrations/ will be automatically applied. Ensure your Supabase project is set up.
Start the development server
npm run dev
After signing up through the UI, grant admin access via SQL:
INSERT INTO user_roles (user_id, role)
VALUES ('YOUR_USER_ID', 'admin')
ON CONFLICT (user_id) DO UPDATE SET role = 'admin';
/admin/admin): Overview with key metrics/admin/films): Manage film catalog/admin/users): Manage user roles/admin/analytics): View platform metrics/admin/settings): Configure platformnpm run dev - Start development servernpm run build - Build for productionnpm run preview - Preview production buildnpm run lint - Run ESLintnpm run typecheck - Run TypeScript type checkingsrc/
├── components/ # Reusable UI components
│ ├── AuthModal.tsx # Login/signup modal
│ ├── Header.tsx # Main navigation
│ ├── ProtectedRoute.tsx # Route protection
│ └── ...
├── context/ # React contexts
│ ├── AuthContext.tsx # Authentication state
│ └── CatalogProvider.tsx # Film catalog state
├── pages/ # Page components
│ ├── admin/ # Admin dashboard pages
│ │ ├── AdminLayout.tsx
│ │ ├── Dashboard.tsx
│ │ ├── Films.tsx
│ │ ├── FilmEditor.tsx
│ │ ├── Users.tsx
│ │ └── ...
│ ├── Home.tsx
│ ├── WatchPage.tsx
│ └── ...
├── lib/ # Utilities and helpers
│ ├── supabase.ts # Supabase client
│ └── catalog.ts # Catalog filtering logic
└── types/ # TypeScript type definitions
All tables have RLS enabled with the following policies:
The Supabase client is initialized in src/lib/supabase.ts and used throughout the app:
import { supabase } from '../lib/supabase';
// Query films
const { data, error } = await supabase
.from('films')
.select('*')
.order('created_at', { ascending: false });
// Add to watchlist
const { error } = await supabase
.from('user_watchlist')
.insert({ user_id: user.id, film_id: filmId });
Planned features for future releases:
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)This project is licensed under the MIT License.
For issues and questions: