{"id":23078297,"url":"https://github.com/mooudmohammady/banking-system","last_synced_at":"2025-06-22T11:37:02.789Z","repository":{"id":266432096,"uuid":"898253638","full_name":"MooudMohammady/banking-system","owner":"MooudMohammady","description":"Banking system with Next.js \u0026 TypeScript \u0026 Docker \u0026 Prisma \u0026 Postgresql 💳💵","archived":false,"fork":false,"pushed_at":"2024-12-05T07:11:31.000Z","size":329,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-30T12:18:08.289Z","etag":null,"topics":["docker","nextjs","postgresql","prisma","reactjs","shadcn-ui","tailwindcss","typescript"],"latest_commit_sha":null,"homepage":"https://banking-system-steel.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MooudMohammady.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2024-12-04T04:12:03.000Z","updated_at":"2025-02-27T21:37:56.000Z","dependencies_parsed_at":"2024-12-04T08:37:41.508Z","dependency_job_id":"cddc9371-eb15-43a0-be5f-9242178c9b14","html_url":"https://github.com/MooudMohammady/banking-system","commit_stats":null,"previous_names":["mooudmohammady/banking-system"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MooudMohammady/banking-system","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MooudMohammady%2Fbanking-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MooudMohammady%2Fbanking-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MooudMohammady%2Fbanking-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MooudMohammady%2Fbanking-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MooudMohammady","download_url":"https://codeload.github.com/MooudMohammady/banking-system/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MooudMohammady%2Fbanking-system/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261289005,"owners_count":23136044,"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":["docker","nextjs","postgresql","prisma","reactjs","shadcn-ui","tailwindcss","typescript"],"created_at":"2024-12-16T10:53:05.292Z","updated_at":"2025-06-22T11:36:57.766Z","avatar_url":"https://github.com/MooudMohammady.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv style=\"display: flex; justify-content: space-around;\"\u003e\n\n  \u003cimg src=\"https://github.com/user-attachments/assets/f447e70e-c0d7-44ee-b6bc-ee9a73af1e32\" alt=\"Screenshot 2024-12-04 193405\" width=\"270\"/\u003e\n\n  \u003cimg src=\"https://github.com/user-attachments/assets/6c41e31d-b188-49c1-a307-629dc671d983\" alt=\"Screenshot 2024-12-04 193455\" width=\"250\"/\u003e\n\n  \u003cimg src=\"https://github.com/user-attachments/assets/5221b1d5-685d-4ccb-8e58-a371d36d5dbd\" alt=\"Screenshot 2024-12-04 193522\" width=\"270\"/\u003e\n\n\u003c/div\u003e\n\n# Banking system with Next.js \u0026 TypeScript\n\nThis project is a simple Next.js application integrated with Docker for easy deployment and management. It includes features like a form for adding bank accounts with validation and a backend connection for fetching and displaying account data.\n\n## **Features**\n\n- 🏦 Add bank accounts with validation (e.g., IBAN format).\n- 📋 Fetch and display a list of bank accounts.\n- 🔒 Built with Next.js and React Hook Form for efficient form handling.\n- 🐳 Dockerized for seamless deployment.\n- ⚡ Fully customizable and easy to extend.\n\n---\n\n## **Getting Started**\n\n### **Prerequisites**\n\nEnsure you have the following installed on your system:\n\n- [Node.js](https://nodejs.org) (v18 or later recommended)\n- [Docker](https://www.docker.com/)\n- [Git](https://git-scm.com/)\n\n### **Installation**\n\n1. **Clone the repository**:\n\n   ```bash\n   git clone https://github.com/MooudMohammady/banking-system.git\n   cd banking-system\n\n   ```\n\n2. **Install dependencies**:\n\n```bash\nnpm install --force\n```\n\n3. **Set up environment variables**: Create a `.env` file in the root directory and add the necessary environment variables:\n\n```env\nDATABASE_URL=your-postgresql-database-url\n```\n\n---\n\n### Running Locally\n\n1. **Development server**: Start the Next.js development server:\n\n```bash\nnpm run dev\n```\n\n2. **Access the application**: Open your browser and visit: http://localhost:3000\n\n### Using Docker\n\n1. **Build the Docker image**:\n\n```bash\ndocker build -t banking-system .\n```\n\n2. **Run the Docker container**:\n\n```bash\ndocker run -p 3000:3000 banking-system\n```\n\n3. **Access the application**: Open your browser and visit: http://localhost:3000\n\n#### ⚠ Running Only the Database Service with Docker Compose\n\n**If you want** to run only the PostgreSQL database using Docker Compose, use the following command:\n\n```bash\ndocker-compose up postgres\n```\n\nThis will start only the `postgres` service defined in docker-compose.yml file. Ensure that your .env file contains the correct `DATABASE_URL` pointing to this database instance.\n\n---\n\n### Project Structure\n\n```plaintext\nbanking-system/\n├── public # Public assets\n├── src/\n│ ├── actions/ # API actions for data fetching and mutations\n│ ├── app/ # Next.js pages\n│ ├── components/ # Shared UI components\n│ │ ├── ui/ # Reusable UI elements (Button, Input, etc.)\n│ ├── lib/ # additional features\n├── docker-compose.yml # Docker configuration for postgres DB\n├── dockerfile # Docker configuration\n├── README.md # Project documentation\n├── .env # Environment variables (not exist by default)\n├── package.json # Project dependencies and scripts\n└── tsconfig.json # TypeScript configuration\n```\n\n---\n\n### Scripts\n\n- If this is the first time you run the project, be sure to execute this command first:\n\n```bash\nnpm run prisma:prepare\n```\n\n- Enter this command if you need sample information:\n\n```bash\nnpm run prisma:seed\n```\n\n- **Start development server**:\n\n```bash\nnpm run dev\n```\n\n- **Build the application**:\n\n```bash\nnpm run build\n```\n\n- **Run production server**:\n\n```bash\nnpm run start\n```\n\n---\n\n### Form Validation\n\nThe project uses `zod` and `react-hook-form` for validation. The bank account form includes:\n\n- **Bank Name**: Minimum 3 characters.\n- **IBAN**: Matches the standard IBAN format.\n- **Balance**: Valid numeric value.\n\n---\n\n### **Design System**\n\nThis project utilizes **TailwindCSS** and **ShadCN** to build a scalable and reusable design system.\n\n#### **TailwindCSS**\n\n- A utility-first CSS framework for rapid UI development.\n- Provides a consistent and highly customizable styling system.\n- Enables responsive design and theming with ease.\n\n#### **ShadCN**\n\n- A collection of accessible and customizable UI components built with Radix and TailwindCSS.\n- Ensures consistent design language across the project.\n- Simplifies the development of reusable and composable components.\n\n---\n\n### License\n\nThis project is licensed under the MIT License.\n\n---\n\n### Contributing\n\nContributions are welcome! Please follow these steps:\n\n1. Fork the repository.\n2. Create a feature branch: `git checkout -b feature-name`.\n3. Commit your changes: `git commit -m \"Add feature-name\"`.\n4. Push to the branch: `git push origin feature-name`.\n5. Open a pull request.\n\n#### Suggested Tasks for Contributors\n\nIf you're looking for specific tasks to contribute, here are some areas where help is needed:\n\n- **Build the Deposit Page and Logic**: Design and implement the user interface and backend logic for depositing funds.\n- **Build the Withdraw Page and Logic**: Create the page and functionality for withdrawing funds from accounts.\n- **Write Automated Tests**: Use tools like **Cypress** or **Jest** to write robust test cases for the application.\n- **Bug Fixes and Enhancements**: Complete pending details, optimize existing features, and resolve reported bugs.\n- **Add Pagination and Filters**: Implement pagination and filtering for the transaction history page to improve usability.\n- **Other Outstanding Tasks**: Review the issue tracker for other tasks that need attention or discuss with the team for additional ideas.\n\nYour contributions make a difference!\n\n---\n\n### Contact\n\nFor any questions or issues, please feel free to reach out:\n\n- **Email**: mooudmohammadi@gmail.com\n- **GitHub**: https://github.com/MooudMohammady\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmooudmohammady%2Fbanking-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmooudmohammady%2Fbanking-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmooudmohammady%2Fbanking-system/lists"}