A full-stack banking system application with a modern UI, built using Next.js and Express.js. This application provides secure user authentication, account management, and transaction capabilities.
- 🔐 Secure Authentication System
- 💳 Bank Account Management
- 💰 Transaction Processing
- 📱 Responsive Modern UI
- 🔒 Protected Routes
- 📊 User Dashboard
- 🎨 Beautiful Gray Theme Design
- Next.js 14 - React Framework
- TypeScript - Type Safety
- Tailwind CSS - Styling
- Axios - HTTP Client
- React Hooks - State Management
- Express.js - Web Framework
- Node.js - Runtime Environment
- Prisma - Database ORM
- PostgreSQL - Database
- JWT - Authentication
- Swagger - API Documentation
- Morgan - HTTP Request Logger
- CORS - Cross-Origin Resource Sharing
- Sentry - Error Tracking
- Nodemailer - Email Service
Before you begin, ensure you have the following installed:
- Node.js (v18 or higher)
- pnpm (v8 or higher)
- PostgreSQL (v14 or higher)
- Clone the repository:
git clone https://github.com/yourusername/banking-system.git
cd banking-system
- Install backend dependencies:
npm install
# or
pnpm install
- Install frontend dependencies:
cd banking-system-frontend
pnpm install
- Set up environment variables:
- Create
.env
file in the root directory for backend - Create
.env.local
file in the frontend directory
- Create
You'll need to run both the backend and frontend servers:
# In the root directory
npm run dev
# or
pnpm dev
The backend server will run on http://localhost:3000
# In the banking-system-frontend directory
pnpm dev
The frontend application will run on http://localhost:3001
Once the backend server is running, you can access the API documentation at:
http://localhost:3000/docs
banking-system/
├── api/ # Backend API routes
├── controllers/ # Backend controllers
├── prisma/ # Database schema and migrations
├── utils/ # Utility functions
├── banking-system-frontend/ # Frontend application
│ ├── src/
│ │ ├── app/ # Next.js app directory
│ │ ├── services/ # API services
│ │ └── components/ # React components
│ └── public/ # Static files
└── tests/ # Test files
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.