Skip to content

Commit 6050161

Browse files
authored
Update README.md
1 parent d841053 commit 6050161

File tree

1 file changed

+52
-8
lines changed

1 file changed

+52
-8
lines changed

README.md

Lines changed: 52 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,28 +7,23 @@ Built with a modern MERN stack on the backend and React + React Native on the fr
77
## Live Demo
88

99
- **Website:** [zappify-sepia.vercel.app](https://zappify-sepia.vercel.app)
10-
- **Download APK:** https://expo.dev/accounts/devendra.mi/projects/zappify/builds/24237286-1ff7-4219-ac7a-6c103ff28d00
10+
- **Download APK:** [Zappify Android App](https://expo.dev/accounts/devendra.mi/projects/zappify/builds/24237286-1ff7-4219-ac7a-6c103ff28d00)
1111

1212
---
1313

1414
## Technology Stack
1515

16-
### Web Frontend
1716
![React](https://img.shields.io/badge/React_19-20232A?style=for-the-badge&logo=react&logoColor=61DAFB)
1817
![Vite](https://img.shields.io/badge/Vite-646CFF?style=for-the-badge&logo=vite&logoColor=white)
1918
![Framer Motion](https://img.shields.io/badge/Framer_Motion-0055FF?style=for-the-badge&logo=framer&logoColor=white)
2019
![CSS3](https://img.shields.io/badge/CSS3-1572B6?style=for-the-badge&logo=css3&logoColor=white)
2120
![Google OAuth](https://img.shields.io/badge/Google_OAuth-4285F4?style=for-the-badge&logo=google&logoColor=white)
2221
![Lucide React](https://img.shields.io/badge/Lucide_React-F56565?style=for-the-badge&logo=lucide&logoColor=white)
23-
24-
### Mobile App
2522
![React Native](https://img.shields.io/badge/React_Native-20232A?style=for-the-badge&logo=react&logoColor=61DAFB)
2623
![Expo](https://img.shields.io/badge/Expo-000020?style=for-the-badge&logo=expo&logoColor=white)
2724
![EAS Build](https://img.shields.io/badge/EAS_Build-4630EB?style=for-the-badge&logo=expo&logoColor=white)
2825
![AsyncStorage](https://img.shields.io/badge/AsyncStorage-FF6B35?style=for-the-badge&logo=react&logoColor=white)
2926
![React Navigation](https://img.shields.io/badge/React_Navigation-6B52AE?style=for-the-badge&logo=react&logoColor=white)
30-
31-
### Backend
3227
![Node.js](https://img.shields.io/badge/Node.js-339933?style=for-the-badge&logo=nodedotjs&logoColor=white)
3328
![Express.js](https://img.shields.io/badge/Express.js-000000?style=for-the-badge&logo=express&logoColor=white)
3429
![MongoDB](https://img.shields.io/badge/MongoDB-47A248?style=for-the-badge&logo=mongodb&logoColor=white)
@@ -38,11 +33,13 @@ Built with a modern MERN stack on the backend and React + React Native on the fr
3833
![Helmet](https://img.shields.io/badge/Helmet-FF6B35?style=for-the-badge&logo=helmet&logoColor=white)
3934
![Morgan](https://img.shields.io/badge/Morgan-000000?style=for-the-badge&logo=npm&logoColor=white)
4035
![Razorpay](https://img.shields.io/badge/Razorpay-02042B?style=for-the-badge&logo=razorpay&logoColor=3395FF)
41-
42-
### Infrastructure
4336
![Vercel](https://img.shields.io/badge/Vercel-000000?style=for-the-badge&logo=vercel&logoColor=white)
4437
![Docker](https://img.shields.io/badge/Docker-2496ED?style=for-the-badge&logo=docker&logoColor=white)
4538
![GitHub Actions](https://img.shields.io/badge/GitHub_Actions-2088FF?style=for-the-badge&logo=githubactions&logoColor=white)
39+
![AWS EC2](https://img.shields.io/badge/AWS_EC2-FF9900?style=for-the-badge&logo=amazonec2&logoColor=white)
40+
![Jest](https://img.shields.io/badge/Jest-C21325?style=for-the-badge&logo=jest&logoColor=white)
41+
![Cypress](https://img.shields.io/badge/Cypress-17202C?style=for-the-badge&logo=cypress&logoColor=white)
42+
![ESLint](https://img.shields.io/badge/ESLint-4B32C3?style=for-the-badge&logo=eslint&logoColor=white)
4643

4744
---
4845

@@ -76,16 +73,22 @@ Users {
7673
String email UK
7774
String password
7875
Boolean isAdmin
76+
Date createdAt
77+
Date updatedAt
7978
}
8079
8180
Products {
8281
ObjectId _id PK
8382
ObjectId user FK
8483
String name
84+
String image
8585
String brand
8686
String category
87+
String description
8788
Number price
8889
Number countInStock
90+
Date createdAt
91+
Date updatedAt
8992
}
9093
9194
Orders {
@@ -94,9 +97,16 @@ Orders {
9497
Array orderItems
9598
Object shippingAddress
9699
String paymentMethod
100+
Object paymentResult
101+
Number taxPrice
102+
Number shippingPrice
97103
Number totalPrice
98104
Boolean isPaid
105+
Date paidAt
99106
Boolean isDelivered
107+
Date deliveredAt
108+
Date createdAt
109+
Date updatedAt
100110
}
101111
```
102112

@@ -263,6 +273,40 @@ VITE_RAZORPAY_KEY_ID=your_razorpay_key_id
263273

264274
---
265275

276+
## CI/CD & Testing
277+
278+
- GitHub Actions pipeline runs on every push and pull request
279+
- Linting with ESLint on both frontend and backend
280+
- Unit tests with Jest for email validation logic
281+
- Integration tests with Jest + Supertest for API routes
282+
- E2E tests with Cypress simulating real user flows (homepage, search, cart, login)
283+
- Automated deployment to AWS EC2 via SSH on every push to main
284+
- Dependabot configured for weekly dependency updates
285+
286+
Run backend tests:
287+
```bash
288+
cd backend
289+
npm test
290+
```
291+
292+
Run E2E tests:
293+
```bash
294+
cd frontend
295+
npm run cy:open
296+
```
297+
298+
---
299+
300+
## AWS EC2 Deployment
301+
302+
Backend is also deployed on AWS EC2 with PM2 process manager.
303+
304+
- EC2 instance: `13.218.101.177:5001`
305+
- PM2 keeps the server alive and auto-restarts on crash
306+
- GitHub Actions auto-deploys on every push to main
307+
308+
---
309+
266310
## Docker
267311

268312
```bash

0 commit comments

Comments
 (0)