Twaire is an open source video sharing platform, where users can share their videos, watch other videos and post their opinions about the videos they watch.
Twaire is built with Node.js and Express and uses MongoDB for storage. The frontend is powered by React and communicates with the backend via RESTful APIs.
- Watch, search and discover videos
- Add your reactions in form of likes and dislikes
- Post your opinions and clarifications to the uploader through comments
- Customize your account with bio and a custom profile picture
- Upload your own videos with custom thumbnails
- More features coming soon...!
To run a local instance of Twaire, you must have the following installed on your system:
- Node.js (v20.19 or higher recommended)
- Git
- MongoDB Server (Make sure
mongodis in your path after installing it) - pnpm can be installed with
npm install -g pnpm - nodemon can be installed with
pnpm install -g nodemon
Twaire has two components:
- the backend server
- and a Vite/ReactJS powered frontend.
Use the root manager for everyday project tasks:
.\manager.ps1 help
.\manager.ps1 setup
.\manager.ps1 start
.\manager.ps1 install
.\manager.ps1 updateThe setup helpers live under scripts/setup/ and are used by the manager to verify Node.js, ensure pnpm, install both app dependencies, and check MongoDB availability:
# macOS / Linux
./scripts/setup/setup.sh
# Windows PowerShell
.\scripts\setup\setup.ps1
# Windows batch
scripts\setup\setup.batRunning the project is quite easy, just follow the instructions below and run the commands (works on most operating systems, assuming you have Git and NodeJS installed)
git clone https://github.com/theonlyasdk/twaire.git
cd twairecd twaire-backend
pnpm install
pnpm approve-builds # Only needed if pnpm prompts for native package approval
pnpm run devcd twaire-frontend
pnpm install
pnpm run dev # Will start up ViteNote: Use
node manage.js startto launch the backend and frontend together. If MongoDB is installed as a Windows service, the setup helper will detect it automatically.
Contributions are welcome! You can submit new features by forking the repository and creating a pull request. If you find any minor or major bug or glitch, feel free to open an issue!
This project is licensed under the MIT License.