Skip to content

Commit 5bfa263

Browse files
improvising readme.md and adding screenshots to it
1 parent 3afa202 commit 5bfa263

7 files changed

Lines changed: 72 additions & 19 deletions

File tree

README.md

Lines changed: 72 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,12 @@
1010
![GitHub stars](https://img.shields.io/github/stars/YashashavGoyal/datamorph?style=for-the-badge)
1111
![GitHub forks](https://img.shields.io/github/forks/YashashavGoyal/datamorph?style=for-the-badge)
1212
![GitHub issues](https://img.shields.io/github/issues/YashashavGoyal/datamorph?style=for-the-badge)
13+
![Docker Pulls](https://img.shields.io/docker/pulls/yashashavgoyal/datamorph?style=for-the-badge&logo=docker&logoColor=white)
14+
15+
<div align="center">
16+
<img src="screenshots/datamorph-home.png" alt="DataMorph Deployed on AWS EC2" width="100%" />
17+
<p><em>Deployed on AWS EC2</em></p>
18+
</div>
1319

1420
DataMorph is a privacy-focused developer tool for converting and validating data formats like JSON, YAML, XML, and TOML. It runs entirely in your browser, so your data never leaves your device.
1521

@@ -49,8 +55,10 @@ flowchart TD
4955
## Features
5056

5157
- **Real-Time Conversion**: Instantly convert between formats as you type.
58+
<img src="screenshots/datamorph-converter.png" alt="Real-time Conversion" width="800" />
5259
- **Privacy First**: 100% client-side processing. Zero data opacity.
5360
- **Validation**: Instant syntax checking for JSON, YAML, XML, and TOML.
61+
<img src="screenshots/datamorph-validator.png" alt="Validator" width="800" />
5462
- **Modern UI**: Dark mode, glassmorphism, and responsive design.
5563

5664
## Future Scope
@@ -61,27 +69,52 @@ flowchart TD
6169
- **PWA Support**: Install as a Progressive Web App for offline use.
6270
- **Theme Toggle**: Light/Dark mode switcher.
6371

64-
## ♾️ DevOps Integration Roadmap
72+
## 🚀 DevOps & Deployment
73+
74+
We have professionalized the deployment pipeline using **GitHub Actions** and **Docker**, ensuring a robust CI/CD process.
75+
76+
### 🔄 CI/CD Pipeline (GitHub Actions)
77+
78+
Our pipeline fully automates the testing, building, and deployment process:
79+
80+
1. **Test**: Runs `npm run lint` to ensure code quality.
81+
2. **Build**: Creates a optimized Docker image using a multi-stage build.
82+
3. **Deploy**: Automatically deploys the new container to our **AWS EC2** instance upon any push to main or any tag push (vx.y.z) with a manual approval.
83+
84+
![GitHub Actions Workflow](screenshots/workflow.png)
85+
86+
### 🐳 Docker Containerization
87+
88+
We use a **Multi-Stage Docker Build** to ensure our production images are:
89+
- **Lightweight**: Only essential artifacts are copied to the final image (based on `node:20-alpine`).
90+
- **Secure**: The app runs as a non-root user (`nextjs`).
91+
- **Efficient**: Dependencies are cached effectively.
92+
93+
**Official Docker Image**: [yashashavgoyal/datamorph](https://hub.docker.com/r/yashashavgoyal/datamorph)
94+
95+
<div align="center">
96+
<img src="screenshots/docker-hub.png" alt="Docker Hub Repository" width="800" />
97+
</div>
98+
99+
#### Verification
65100

66-
To professionalize the deployment pipeline, the following DevOps practices can be integrated:
101+
You can verify the running container on our AWS EC2 instance:
102+
![AWS EC2 Docker Process](screenshots/aws-ec2-ubuntu.png)
67103

68-
1. **CI/CD Pipeline (GitHub Actions)**:
69-
- Automate linting (`npm run lint`) and type checking on every Pull Request.
70-
- Automatically deploy to Vercel Preview environments.
104+
### 📈 Monitoring & Future Roadmap
71105

72-
2. **Containerization (Docker)**:
73-
- Create a `Dockerfile` for self-hosted deployments.
74-
- Use multi-stage builds to keep the image size small.
106+
- [x] **CI/CD Pipeline**: GitHub Actions for automated linting and deployment.
107+
- [x] **Containerization**: Dockerfile with multi-stage builds.
108+
- [ ] **Unit Tests**: Integrate Jest/Vitest.
109+
- [ ] **E2E Tests**: Integrate Playwright.
110+
- [ ] **Monitoring**: Integrate Sentry and Vercel Analytics.
75111

76-
3. **Testing Strategy**:
77-
- **Unit Tests**: Use **Jest** or **Vitest** to test the `lib/converters.ts` logic.
78-
- **E2E Tests**: Use **Playwright** to verify the user flow (typing in editor -> seeing output).
112+
### Prerequisites
79113

80-
4. **Monitoring**:
81-
- Integrate **Sentry** for frontend error tracking.
82-
- Use **Vercel Analytics** for performance metrics.
114+
- Use a modern package manager like `npm`, `yarn`, or `pnpm`.
115+
- **Node.js**: v18 or higher is recommended.
83116

84-
## 💻 Getting Started
117+
### Installation & Run
85118

86119
1. **Clone the repository**:
87120
```bash
@@ -92,15 +125,35 @@ To professionalize the deployment pipeline, the following DevOps practices can b
92125
2. **Install dependencies**:
93126
```bash
94127
npm ci
128+
# or
129+
npm install
130+
```
131+
132+
### Development
133+
134+
Run the development server to see changes in real-time:
135+
136+
```bash
137+
npm run dev
138+
```
139+
140+
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
141+
142+
### Production
143+
144+
To build the application for production usage:
145+
146+
1. **Build the application**:
147+
```bash
148+
npm run build
95149
```
96150

97-
3. **Run the development server**:
151+
2. **Start the production server**:
98152
```bash
99-
npm run dev
153+
npm start
100154
```
101155

102-
4. **Open locally**:
103-
Visit [http://localhost:3000](http://localhost:3000) in your browser.
156+
The application is now optimized and ready for deployment.
104157

105158
## 📂 Modular Code Structure
106159
```bash

screenshots/aws-ec2-ubuntu.png

82.2 KB
Loading
121 KB
Loading

screenshots/datamorph-home.png

227 KB
Loading
140 KB
Loading

screenshots/docker-hub.png

180 KB
Loading

screenshots/workflow.png

108 KB
Loading

0 commit comments

Comments
 (0)