{"id":20411067,"url":"https://github.com/raihan2bd/filmwise","last_synced_at":"2025-04-12T16:05:19.562Z","repository":{"id":155072265,"uuid":"622560115","full_name":"raihan2bd/filmwise","owner":"raihan2bd","description":"A full stack project build with Golang(Go), PostgreSQL, React, Redux, TypeScript, Html and CSS. Your Ultimate Movie Hub. Experience movies like never before, the web application that lets you dive into detailed movie information, share your thoughts through comments and reviews. Discover, discuss, and decide on your favorite films all in one place.","archived":false,"fork":false,"pushed_at":"2023-09-25T13:00:25.000Z","size":24357,"stargazers_count":9,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2025-03-26T10:36:10.023Z","etag":null,"topics":["go","golang","jwt-authentication","postgresql","restful-api"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raihan2bd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-02T13:32:13.000Z","updated_at":"2024-09-30T14:38:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"22362439-dba5-4c98-af61-a3c542d5828a","html_url":"https://github.com/raihan2bd/filmwise","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raihan2bd%2Ffilmwise","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raihan2bd%2Ffilmwise/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raihan2bd%2Ffilmwise/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raihan2bd%2Ffilmwise/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raihan2bd","download_url":"https://codeload.github.com/raihan2bd/filmwise/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248593733,"owners_count":21130312,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["go","golang","jwt-authentication","postgresql","restful-api"],"created_at":"2024-11-15T05:49:26.678Z","updated_at":"2025-04-12T16:05:19.531Z","avatar_url":"https://github.com/raihan2bd.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\u003ch1 align='center'\u003eFilmWise\u003c/h1\u003e\n\n\n# 📗 Table of Contents\n\n- [📗 Table of Contents](#-table-of-contents)\n- [ FilmWise ](#-about-project-)\n  - [🛠 Built With ](#-built-with-)\n    - [Tech Stack ](#tech-stack-)\n    - [Key Features ](#key-features-)\n  - [💻 Getting Started ](#-getting-started-)\n    - [Prerequisites](#prerequisites)\n    - [Setup](#setup)\n    - [Install](#install)\n    - [Database](#database)\n    - [Usage](#usage)\n    - [Build](#build)\n    - [Deployment](#deployment)\n  - [👥 Authors ](#-authors-)\n  - [🔭 Future Features ](#-future-features-)\n  - [🤝 Contributing ](#-contributing-)\n  - [⭐️ Show your support ](#️-show-your-support-)\n  - [🙏 Acknowledgments ](#-acknowledgments-)\n  - [📝 License ](#-license-)\n\n\n# FilmWise \u003ca name=\"about-project\"\u003e\u003c/a\u003e\nFilmWise: Your Ultimate Movie Hub. Experience movies like never before with FilmWise, the web application that lets you dive into detailed movie information, share your thoughts through comments and reviews, and connect with fellow cinephiles. Discover, discuss, and decide on your favorite films all in one place. if you want to see the front-end part, you can click [here](https://github.com/raihan2bd/filmwise-front)\n\n## 🛠 Built With \u003ca name=\"built-with\"\u003e\u003c/a\u003e\n### Tech Stack \u003ca name=\"tech-stack\"\u003e\u003c/a\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eFront End\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003eNextjs\u003c/li\u003e\n    \u003cli\u003eReact\u003c/li\u003e\n    \u003cli\u003eRedux\u003c/li\u003e\n    \u003cli\u003eJAVASCRIPT\u003c/li\u003e\n    \u003cli\u003eHtml\u003c/li\u003e\n    \u003cli\u003eCSS\u003c/li\u003e\n  \u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eBack End\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003eGolang\u003c/li\u003e\n    \u003cli\u003ePostgreSQL\u003c/li\u003e\n  \u003c/ul\u003e\n\u003c/details\u003e\n\n\n\u003c!-- LIVE DEMO --\u003e\n\n## 🚀 Live Demo \u003ca name=\"live-demo\"\u003e\u003c/a\u003e\n\n- Project ScreenShot\n\n![Capture](https://github-production-user-asset-6210df.s3.amazonaws.com/35267447/269177343-28e03d43-c9c2-493b-ab4a-447884cb80e5.PNG)\n\n![Capture2](https://github-production-user-asset-6210df.s3.amazonaws.com/35267447/269177383-fad4b05b-868f-4721-8a15-3ae2219d2791.PNG)\n\n![Capture3](https://github-production-user-asset-6210df.s3.amazonaws.com/35267447/269177404-dd500d3f-1077-4c39-ae5e-0e139991e903.PNG)\n\n![Capture4](https://github-production-user-asset-6210df.s3.amazonaws.com/35267447/269177423-ffb82686-4413-43a0-9814-9125da5b6722.PNG)\n\n![Capture5](https://github-production-user-asset-6210df.s3.amazonaws.com/35267447/269177434-0e2a5f53-b5d4-4395-9639-43f29c78d0ad.PNG)\n\n![Capture6](https://github-production-user-asset-6210df.s3.amazonaws.com/35267447/269177442-f659f94b-f9a1-47fd-90c7-495d88cbd191.PNG)\n\n![Capture7](https://github-production-user-asset-6210df.s3.amazonaws.com/35267447/269177463-2f08dc17-2fb2-479d-a759-d6e4213e6865.PNG)\n\n![Capture8](https://github-production-user-asset-6210df.s3.amazonaws.com/35267447/269177469-9f97149a-e199-4e24-92e4-6891bae9360d.PNG)\n![Capture9](https://github-production-user-asset-6210df.s3.amazonaws.com/35267447/269177483-7a8bada7-b3c8-4a6d-977e-7a3cb6d8e464.PNG)\n\n\n\u003e \u003ca href=\"https://filmwise-front.vercel.app/\" target=\"_blank\"\u003eLive Demo Link\u003c/a\u003e\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n### Key Features \u003ca name=\"key-features\"\u003e\u003c/a\u003e\n\n- Discover detailed movie information, from plots to cast.\n- Engage in vibrant discussions by commenting on movies.\n- Add your personal reviews to contribute to the community.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## 💻 Getting Started \u003ca name=\"getting-started\"\u003e\u003c/a\u003e \n\nTo get a local copy up and running, follow these steps.\n\n### Prerequisites\n\nIn order to run this project you need:\n- Then Make sure you have installed [Go (golang)](https://go.dev/dl/) version 1.20.4 or the latest stable version.\n- Then make sure you have installed [PostgreSQL](https://www.postgresql.org/) on your local machine if you want to use this project locally.\n- Then Create a database called `filmwise` inside the database and create tables using this `project\u003edatabase` `schema` SQL query.\n\n- First of all to see this project's graphical interface make sure you run the [front-end](https://github.com/raihan2bd/filmwise-front) part\n\n### Setup\n\n- Clone this repository to your desired folder:\n\n```sh\n  cd your-folder\n  https://github.com/raihan2bd/filmwise.git\n```\n\n- Before running the project please make sure you create a `.env` file to your project root directory and add `DATABASE_URI`, and `JWT_SECRET_KEY` environment variables to the file. For example:\n```\nDATABASE_URI=\"host=localhost port=5432 dbname=filmwise user=postgres password=your password sslmode=disable\"\nJWT_SECRET=\"your jwt secret key\"\nCLD_URI=\"Secreat Key of cloudinary\"\nCLOUD_NAME=\"Name of cloudinary account\"\n```\n\n### Getting JWT Secret Key\n\nTo obtain the JWT secret key, please \u003ca href=\"https://go.dev/play/\" target=\"_blank\" style=\"color: blue; font-size: 12px; text-decoration: underline;\"\u003eclick here\u003c/a\u003e.\n\nAn open Go terminal is required. In the terminal, please copy the following code and paste it into your \u003cspan style=\"color: lightblue;\"\u003e.env\u003c/span\u003e file.\n\nLike this\n\nJWT_SECRET=\"*******\"\n\n```\n\npackage main\n\nimport (\n\t\"crypto/rand\"\n\t\"encoding/base64\"\n\t\"fmt\"\n)\n\nfunc main() {\n\t// Define the desired length of the secret key in bytes\n\tkeyLength := 64 // Adjust the length as needed\n\n\t// Create a byte slice to hold the random bytes\n\tkey := make([]byte, keyLength)\n\n\t// Generate random bytes using crypto/rand\n\t_, err := rand.Read(key)\n\tif err != nil {\n\t\tfmt.Println(\"Error generating random bytes:\", err)\n\t\treturn\n\t}\n\n\t// Encode the random bytes in base64 to create a string\n\tsecretKey := base64.StdEncoding.EncodeToString(key)\n\n\tfmt.Println(\"Generated JWT secret key:\", secretKey)\n}\n\n```\n\n### Getting Cloudinary Serect key and Name\n\nCloudinary is a cloud-based media management platform that helps businesses and developers efficiently store, manage, and deliver images and videos for websites and applications. It provides features like image and video uploading, storage, transformation, optimization, and content delivery via a content delivery network (CDN), making it easier to handle media assets in web and mobile applications. Cloudinary's services can enhance website performance, user experience, and streamline media asset workflows.\n\nFor using this you need to \u003ca href=\"https://cloudinary.com/users/register_free\" target=\"_blank\" style=\"hover:text-decoration: underline; font-size:1.1rem\"\u003eCreate an account\u003c/a\u003e Or if you have an Account you need to \u003ca href=\"https://cloudinary.com/users/login\" target=\"_blank\" style=\"hover:text-decoration: underline; font-size:1.2rem;\"\u003eSign In \u003c/a\u003e\n\nAfter that go into the \u003cspan style=\"color: #3448c5;\"\u003eDashborad\u003c/span\u003e\n\nCopy the \u003cspan style=\"color: #3448c5;\"\u003eCloud Name\u003c/span\u003e and\n\u003cspan style=\"color: #3448c5;\"\u003eAPI Environment variable\u003c/span\u003e\n\n```\nCLD_URI=\"cloudinary://******\"\n\nCLOUD_NAME=\"****\"\n\n```\n\n\n\n### Install\n\nInstall this project with:\n\n- Install the required gems with:\n\n```sh\ngo mod tidy\n```\n\n### Database\n\n- Create the databases properly, You need to open an SQL editor and run the `/database/schema.sql` file script. Make sure you run the script block by block.\n\n### Usage\n\n- To run the development server, execute the following command:\n\n```sh\ngo run ./cmd/api/ .\n```\n\n### Build\n\n- To build the project for production-ready run the following command:\n\n```sh\ngo build -o main ./cmd/api/*.go\n```\n\n\n\n\n### Deployment\n\nTo deploy your project online You can visit [Render](https://www.render.com/)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n## 👥 Author \u003ca name=\"author\"\u003e\u003c/a\u003e\n\n👤 **Abu Raihan**\n\n- GitHub: [@raihan2bd](https://github.com/raihan2bd)\n- Twitter: [@raihan2bd](https://twitter.com/raihan2bd)\n- LinkedIn: [raihan2bd](https://linkedin.com/in/raihan2bd)\n\n\n👤 **Hassaan Baig**\n\n- GitHub: [@Hassaanjbaig](https://github.com/Hassaanjbaig-code/)\n- LinkedIn [Hassan Baig](https://linkedin.com/in/hassaan-jawwad=baig)\n\n  \n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n## 🔭 Future Features \u003ca name=\"future-features\"\u003e\u003c/a\u003e\n\n- [ ] **Improve user experience**\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n## 🤝 Contributing \u003ca name=\"contributing\"\u003e\u003c/a\u003e\n\nContributions, issues, and feature requests are welcome!\n\nFeel free to check the [issues page](https://github.com/raihan2bd/filmwise/issues).\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n## ⭐️ Show your support \u003ca name=\"support\"\u003e\u003c/a\u003e\n\nIf you like this project, please leave a ⭐️\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n## 🙏 Acknowledgments \u003ca name=\"acknowledgements\"\u003e\u003c/a\u003e\n\nI would like to thank [Trevor Sawler](https://www.gocode.ca/) Who helped me a lot to learn Golang.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n## 📝 License \u003ca name=\"license\"\u003e\u003c/a\u003e\n\nThis project is [MIT](./LICENSE) licensed.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraihan2bd%2Ffilmwise","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraihan2bd%2Ffilmwise","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraihan2bd%2Ffilmwise/lists"}