├── .babelrc
├── .gitignore
├── LICENSE
├── README.md
├── main.js
├── package-lock.json
├── package.json
├── src
├── assets
│ ├── css
│ │ ├── App.scss
│ │ ├── _globals.scss
│ │ └── _variables.scss
│ ├── icons
│ │ ├── linux
│ │ │ └── iconLinux.png
│ │ ├── mac
│ │ │ └── iconMac.icns
│ │ └── win
│ │ │ └── iconWin.ico
│ └── images
│ │ ├── house.png
│ │ ├── logo2.png
│ │ └── screenshot.PNG
├── components
│ ├── About.js
│ ├── App.js
│ ├── Home.js
│ ├── Nav.js
│ └── sub-components
│ │ ├── CDN
│ │ └── CDN.js
│ │ ├── Colors
│ │ └── Colors.js
│ │ ├── EmojiPicker
│ │ ├── EmojiModal.js
│ │ ├── EmojiPicker.js
│ │ └── emojis.json
│ │ ├── Epsum
│ │ └── Epsum.js
│ │ ├── Font
│ │ └── Font.js
│ │ ├── Icons
│ │ └── Icons.js
│ │ ├── ImageCompressor
│ │ └── ImageCompressor.js
│ │ └── URLShortener
│ │ └── URLShortener.js
└── index.js
├── webpack.build.config.js
└── webpack.dev.config.js
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["react"]
3 | }
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | *npm-debug.log
3 | *.DS_Store
4 | dist/
5 | builds/
6 | .env
7 | release-builds/
8 | electron-packager/
9 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 Idrees Dargahwala
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 
2 | # Source me
3 | > **Source Me** is a cross platform desktop application which has some essential tools while making a project.
4 |
5 | Version: 0.2.1
6 |
7 | ## Features
8 |
9 | - Material Design Colors by [Google](https://material.io/guidelines/style/color.html)
10 | The application contains a full stack of material designed colors created by Google. These can be very useful when one needs these colors at one place. It uses `react-tooltip` to show the hex codes.
11 |
12 | - Content Delivery Networks Library by [CDN](https://cdnjs.com/)
13 | These are libraries provided by cdn in one place. You can import the links to your project.
14 |
15 | - Material Designed Icons by [Google](https://material.io/icons/)
16 | These are material designed icons made by Google. It is similar to the colors component.
17 |
18 | - Epsum Generator from [bacon ipsum](https://baconipsum.com/)
19 | A generator which generates standalone text which can be useful to your HTML mockups.
20 |
21 | - URL Shortner
22 | A URL shortener which uses a free is.gd to shorten urls quickly.
23 |
24 | - Emoji Picker
25 | It is a picker which has a curated list of Emojis. Click one of them & you get the unicode!
26 |
27 | - Image Compressor
28 | A tool which compresses your images quickly. It uses @xkeshi/image-compressor.
29 |
30 | ## Use
31 | Download the latest version of Source me from the releases page
32 |
33 | ## Build
34 | The app can be used locally by following commands:
35 |
36 | ```bash
37 | $ git clone https://github.com/theIYD/source-me.git
38 | $ cd source-me
39 | $ npm install
40 | $ npm run dev
41 | ```
42 |
43 | The application has been abandoned and further updates have been stopped.
44 |
45 |
--------------------------------------------------------------------------------
/main.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | // Import parts of electron to use
4 | const {app, BrowserWindow} = require('electron');
5 | const path = require('path')
6 | const url = require('url')
7 |
8 | // Keep a global reference of the window object, if you don't, the window will
9 | // be closed automatically when the JavaScript object is garbage collected.
10 | let mainWindow;
11 |
12 | // Keep a reference for dev mode
13 | let dev = false;
14 | if ( process.defaultApp || /[\\/]electron-prebuilt[\\/]/.test(process.execPath) || /[\\/]electron[\\/]/.test(process.execPath) ) {
15 | dev = true;
16 | }
17 |
18 | function createWindow() {
19 | // Create the browser window.
20 | let config = {
21 | title: 'SourceMe',
22 | width: 1024,
23 | height: 840,
24 | backgroundColor: '#7E57C2',
25 | autoHideMenuBar: true,
26 | icon: path.join(__dirname, 'src/assets/icons/linux/iconLinux.png'),
27 | resizable: process.platform === 'darwin',
28 | maximizable: process.platform === 'darwin',
29 | show: false,
30 | titleBarStyle: 'hiddenInset'
31 | }
32 | mainWindow = new BrowserWindow(config);
33 |
34 | // and load the index.html of the app.
35 | let indexPath;
36 | if ( dev && process.argv.indexOf('--noDevServer') === -1 ) {
37 | indexPath = url.format({
38 | protocol: 'http:',
39 | host: 'localhost:8080',
40 | pathname: 'index.html',
41 | slashes: true
42 | });
43 | } else {
44 | indexPath = url.format({
45 | protocol: 'file:',
46 | pathname: path.join(__dirname, 'dist', 'index.html'),
47 | slashes: true
48 | });
49 | }
50 |
51 |
52 |
53 | mainWindow.loadURL( indexPath );
54 |
55 | // Don't show until we are ready and loaded
56 |
57 | mainWindow.once('ready-to-show', () => {
58 |
59 | mainWindow.show();
60 | // Open the DevTools automatically if developing
61 | if (dev) {
62 | mainWindow.webContents.openDevTools();
63 | }
64 | });
65 |
66 | // Emitted when the window is closed.
67 | mainWindow.on('closed', function() {
68 | // Dereference the window object, usually you would store windows
69 | // in an array if your app supports multi windows, this is the time
70 | // when you should delete the corresponding element.
71 | mainWindow = null;
72 | });
73 | }
74 |
75 | // This method will be called when Electron has finished
76 | // initialization and is ready to create browser windows.
77 | // Some APIs can only be used after this event occurs.
78 | app.on('ready', createWindow);
79 |
80 | // Quit when all windows are closed.
81 | app.on('window-all-closed', () => {
82 | // On macOS it is common for applications and their menu bar
83 | // to stay active until the user quits explicitly with Cmd + Q
84 | if (process.platform !== 'darwin') {
85 | app.quit();
86 | }
87 | });
88 |
89 | app.on('activate', () => {
90 | // On macOS it's common to re-create a window in the app when the
91 | // dock icon is clicked and there are no other windows open.
92 | if (mainWindow === null) {
93 | createWindow();
94 | }
95 | });
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "source-me",
3 | "version": "0.2.1",
4 | "description": "A tool which provides necessary tools needed for web development",
5 | "author": "Idrees Dargahwala",
6 | "repository": {
7 | "type": "git",
8 | "url": "https://github.com/theIYD/source-me"
9 | },
10 | "license": "MIT",
11 | "main": "main.js",
12 | "scripts": {
13 | "prod": "webpack --config webpack.build.config.js && electron --noDevServer .",
14 | "dev": "webpack-dev-server --hot --host 0.0.0.0 --config=./webpack.dev.config.js",
15 | "build": "webpack --config webpack.build.config.js",
16 | "package": "webpack --config webpack.build.config.js",
17 | "postpackage-win": "npm run build && electron-packager ./ --out=./builds --overwrite --platform=win32 --arch=ia32 --icon=src/assets/icons/win/iconWin.ico --prune=true && bestzip release-builds/source-me-win-x64.zip builds/source-me-win32-ia32",
18 | "postpackage-linux": "npm run build && electron-packager ./ --overwrite --platform=linux --arch=x64 --icon=src/assets/icons/linux/iconLinux.png --prune=true --out=builds && bestzip release-builds/source-me-linux-x64.zip builds/source-me-linux-x64",
19 | "postpackage-darwin": "npm run build && electron-packager ./ SourceMe --overwrite --ignore=electron-packager --platform=darwin --arch=x64 --icon=src/assets/icons/mac/iconMac.icns --prune=true --out=builds"
20 | },
21 | "devDependencies": {
22 | "babel-core": "^6.26.3",
23 | "babel-loader": "^7.1.2",
24 | "babel-preset-react": "^6.24.1",
25 | "babili-webpack-plugin": "^0.1.2",
26 | "css-loader": "^0.28.1",
27 | "electron": "^2.0.2",
28 | "electron-packager": "^12.1.0",
29 | "extract-text-webpack-plugin": "^3.0.1",
30 | "file-loader": "^1.1.5",
31 | "html-webpack-plugin": "^2.28.0",
32 | "react": "^16.0.0",
33 | "react-dom": "^16.0.0",
34 | "style-loader": "^0.19.0",
35 | "webpack": "^3.6.0",
36 | "webpack-cli": "^3.0.7",
37 | "webpack-dev-server": "^3.1.4"
38 | },
39 | "dependencies": {
40 | "@xkeshi/image-compressor": "^0.5.2",
41 | "axios": "^0.17.0",
42 | "bestzip": "^1.1.4",
43 | "dotenv": "^4.0.0",
44 | "file-saver": "^1.3.3",
45 | "node-sass": "^4.9.0",
46 | "node-url-shortener": "^1.0.1",
47 | "react-modal": "^3.1.0",
48 | "react-router-dom": "^4.2.2",
49 | "react-spinners": "^0.2.1",
50 | "react-tooltip": "^3.4.0",
51 | "sass-loader": "^6.0.6",
52 | "webfontloader": "^1.6.28"
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/src/assets/css/App.scss:
--------------------------------------------------------------------------------
1 | @import 'variables';
2 | @import 'globals';
3 |
4 | .navbar {
5 | width: 350px;
6 | flex: 3;
7 | background: $body-background;
8 | padding: 1em 0 2.5em 0;
9 | //border-right: 2px solid $grey-light-accent-color;
10 | height: 100%;
11 | overflow-x: hidden;
12 | overflow-y: auto;
13 |
14 | &::-webkit-scrollbar {
15 | width: 6px;
16 | background-color: $grey-dark-accent-color;
17 | }
18 | &::-webkit-scrollbar-thumb{
19 | background-color: $indigo-300;
20 | border-radius: 10px;
21 | }
22 |
23 | .m-icon {
24 | position: relative;
25 | top: 6px;
26 | right: 6px;
27 | }
28 |
29 | .about-navigate {
30 | /*position: relative;
31 | top: 4em;
32 | padding: 2em 0;
33 | text-align: center;
34 | display: block;
35 | margin: 0 auto;*/
36 | //border-top: 1px solid $grey-light-accent-color;
37 |
38 | p {
39 | font-size: 13px;
40 | margin-top: 10px;
41 | }
42 | a{
43 | text-decoration: none;
44 | color: $grey-600;
45 | }
46 | }
47 | }
48 |
49 | .nav-category {
50 | margin: .2em 0;
51 | padding-left: 2rem;
52 | font-size: 11px;
53 | font-weight: normal;
54 | text-transform: uppercase;
55 |
56 | h3 {
57 | color: $white;
58 | }
59 | }
60 |
61 | .nav-item {
62 | padding: 0.25em 0 0.25em 0;
63 |
64 | h5 {
65 | padding: .3rem 0 .3rem .3rem;
66 | padding-left: calc(2rem + 16px + .5rem);
67 | width: 100%;
68 | line-height: 2;
69 | text-align: left;
70 | color: $white;
71 | font-weight: 500;
72 |
73 | &:hover {
74 | text-decoration: underline;
75 | font-weight: bold;
76 | color: $white;
77 | cursor: pointer;
78 | }
79 |
80 | a {
81 | display: block;
82 | text-decoration: none;
83 | color: inherit;
84 | }
85 | }
86 | }
87 |
88 | .container {
89 | flex: 5;
90 | position: relative;
91 | opacity: 1;
92 | min-height: 100%;
93 | }
94 |
95 | .about {
96 | text-align: center;
97 | img {
98 | margin-top: 4em;
99 | width: 200px;
100 | height: 200px;
101 | }
102 | .about-sourceme {
103 | margin-top: 20px;
104 | p {
105 | line-height: 1.2;
106 | color: $grey-paragraph;
107 | font-family: $font-stack-secondary;
108 | font-size: 17px;
109 | font-weight: 400;
110 | }
111 | }
112 | }
113 |
114 | .wrapper {
115 | padding: 2em 3em 1em 3em;
116 | position: relative;
117 | display: block;
118 | top: 2em;
119 | hr {
120 | width: 25%;
121 | border: 1px solid $grey-light-accent-color;
122 | margin: 0.5em auto 0 auto;
123 | }
124 | h2 {
125 | color: $black;
126 | }
127 | .dropdown {
128 | margin-top: 1em;
129 | }
130 | }
131 | .cdn {
132 | text-align: center;
133 | .color-cdn-link {
134 | border-radius: 5px;
135 | text-align: center;
136 | margin: 0 auto;
137 | .cdn-link {
138 | margin-top: 2em;
139 | color: $grey-dark-color;
140 | text-align: center;
141 | font-weight: 700;
142 | padding: 0.25em;
143 | }
144 | }
145 | }
146 | .about-library {
147 | margin: 2em 0;
148 | color: $grey-paragraph;
149 | opacity: 0.6;
150 | text-align: center;
151 | a{
152 | text-decoration: underline inherit;
153 | color: inherit;
154 | }
155 | }
156 |
157 | .wrap-colors {
158 | width: 50%;
159 | margin-left: auto;
160 | margin-right: auto;
161 | display: block;
162 | text-align: center;
163 | margin-bottom: 20px;
164 | margin-top: 2em;
165 |
166 | .color-div {
167 | width: 80px;
168 | height: 30px;
169 | display: inline-flex;
170 | align-items: center;
171 | justify-content: center;
172 | margin-left: auto;
173 | margin-right: auto;
174 | padding: 20px;
175 | margin-right: 10px;
176 | margin-bottom: 10px;
177 | border-radius: 5px;
178 | }
179 | }
180 |
181 | .wrap-icons, .wrap-ipsum, .wrap-emojis {
182 | margin: 0 0 0 2em;
183 | max-height: 450px;
184 | overflow-y: auto;
185 |
186 | &::-webkit-scrollbar {
187 | width: 3px;
188 | background-color: $grey-dark-accent-color;
189 | }
190 | &::-webkit-scrollbar-thumb{
191 | background-color: $grey-paragraph;
192 | border-radius: 10px;
193 | }
194 | .icons {
195 | margin-right: 1em;
196 | }
197 | }
198 |
199 | .popup {
200 | position: fixed;
201 | width: 100%;
202 | height: 100%;
203 | top: 0;
204 | left: 0;
205 | right: 0;
206 | bottom: 0;
207 | margin: auto;
208 | background-color: rgba(0,0,0, 0.5);
209 |
210 | .popup_inner {
211 | position: absolute;
212 | left: 35%;
213 | right: 35%;
214 | top: 35%;
215 | bottom: 35%;
216 | margin: auto;
217 | background: white;
218 | border-radius: 10px;
219 | box-shadow: 6px 6px 10px 1px rgba(0, 0, 0, 0.5);
220 | }
221 | }
222 |
223 | .submit {
224 | background: #7f8ff4;
225 | color: $white;
226 | border-radius: 2px;
227 | padding: 12px 36px;
228 | margin-top: 20px;
229 | outline: none;
230 | border: 0;
231 | cursor: pointer;
232 | transition: background-color ease-in-out 200ms;
233 | -webkit-box-shadow: 5px 4px 8px -2px rgba(0,0,0,0.54);
234 | -moz-box-shadow: 5px 4px 8px -2px rgba(0,0,0,0.54);
235 | box-shadow: 5px 4px 8px -2px rgba(0,0,0,0.54);
236 |
237 | &:hover {
238 | background-color: $indigo-800 !important;
239 | }
240 | }
241 |
242 | .containFile {
243 | overflow: hidden;
244 | position: relative;
245 | padding: 0.5em 1em;
246 | background-color: #7f8ff4;
247 | border-radius: 5px;
248 | color: $white;
249 | font-size: 14px;
250 | transition: background-color ease-in-out 200ms;
251 | -webkit-box-shadow: 5px 4px 8px -2px rgba(0,0,0,0.54);
252 | -moz-box-shadow: 5px 4px 8px -2px rgba(0,0,0,0.54);
253 | box-shadow: 5px 4px 8px -2px rgba(0,0,0,0.54);
254 |
255 | &:hover {
256 | background-color: $indigo-800 !important;
257 | }
258 | }
259 |
260 | .containFile [type=file] {
261 | cursor: pointer;
262 | display: block;
263 | filter: alpha(opacity=0);
264 | min-height: 100%;
265 | min-width: 100%;
266 | opacity: 0;
267 | position: absolute;
268 | right: 0;
269 | text-align: right;
270 | top: 0;
271 | }
272 |
--------------------------------------------------------------------------------
/src/assets/css/_globals.scss:
--------------------------------------------------------------------------------
1 | * {
2 | margin: 0;
3 | padding: 0;
4 | box-sizing: border-box;
5 | font-family: $font-stack-primary;
6 | }
7 |
8 | html {
9 | height: 100%;
10 | overflow: hidden;
11 | background-color: $white;
12 | background-image: $background;
13 | }
14 |
15 | body {
16 | height: 100%;
17 | display: flex;
18 | min-height: 100%;
19 | }
20 |
21 | #root {
22 | width: 100%;
23 | height: 100%;
24 | }
25 |
26 | #app {
27 | height: 100%;
28 | }
29 |
30 | pre {
31 | font-family: "Courier 10 Pitch", Courier, monospace;
32 | font-size: 95%;
33 | line-height: 140%;
34 | white-space: pre;
35 | white-space: pre-wrap;
36 | white-space: -moz-pre-wrap;
37 | white-space: -o-pre-wrap;
38 | }
39 |
40 | code {
41 | font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
42 | font-size: 95%;
43 | line-height: 140%;
44 | white-space: pre;
45 | white-space: pre-wrap;
46 | white-space: -moz-pre-wrap;
47 | white-space: -o-pre-wrap;
48 | }
--------------------------------------------------------------------------------
/src/assets/css/_variables.scss:
--------------------------------------------------------------------------------
1 | //Font stacks
2 | $font-stack-primary: 'Titillium Web', Helvetica, sans-serif;
3 | $font-stack-secondary: 'Roboto', Helvetica, sans-serif;
4 |
5 | //Colors
6 | $white: #FFFFFF;
7 | $black: #000000;
8 | $body-background: #312450;
9 | $grey-dark-accent-color: hsl(0,0%,96%);
10 | $grey-light-accent-color: hsl(0,0%,88%);
11 | $grey-dark-color: hsl(0,0%,44%);
12 | $indigo-300: #7986CB;
13 | $indigo-800: #283593;
14 | $grey-600: #757575;
15 | $grey-paragraph: #494C4E;
16 |
17 | //SVG
18 | $background: url("data:image/svg+xml,%3Csvg width='120' height='120' viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 0h2v20H9V0zm25.134.84l1.732 1-10 17.32-1.732-1 10-17.32zm-20 20l1.732 1-10 17.32-1.732-1 10-17.32zM58.16 4.134l1 1.732-17.32 10-1-1.732 17.32-10zm-40 40l1 1.732-17.32 10-1-1.732 17.32-10zM80 9v2H60V9h20zM20 69v2H0v-2h20zm79.32-55l-1 1.732-17.32-10L82 4l17.32 10zm-80 80l-1 1.732-17.32-10L2 84l17.32 10zm96.546-75.84l-1.732 1-10-17.32 1.732-1 10 17.32zm-100 100l-1.732 1-10-17.32 1.732-1 10 17.32zM38.16 24.134l1 1.732-17.32 10-1-1.732 17.32-10zM60 29v2H40v-2h20zm19.32 5l-1 1.732-17.32-10L62 24l17.32 10zm16.546 4.16l-1.732 1-10-17.32 1.732-1 10 17.32zM111 40h-2V20h2v20zm3.134.84l1.732 1-10 17.32-1.732-1 10-17.32zM40 49v2H20v-2h20zm19.32 5l-1 1.732-17.32-10L42 44l17.32 10zm16.546 4.16l-1.732 1-10-17.32 1.732-1 10 17.32zM91 60h-2V40h2v20zm3.134.84l1.732 1-10 17.32-1.732-1 10-17.32zm24.026 3.294l1 1.732-17.32 10-1-1.732 17.32-10zM39.32 74l-1 1.732-17.32-10L22 64l17.32 10zm16.546 4.16l-1.732 1-10-17.32 1.732-1 10 17.32zM71 80h-2V60h2v20zm3.134.84l1.732 1-10 17.32-1.732-1 10-17.32zm24.026 3.294l1 1.732-17.32 10-1-1.732 17.32-10zM120 89v2h-20v-2h20zm-84.134 9.16l-1.732 1-10-17.32 1.732-1 10 17.32zM51 100h-2V80h2v20zm3.134.84l1.732 1-10 17.32-1.732-1 10-17.32zm24.026 3.294l1 1.732-17.32 10-1-1.732 17.32-10zM100 109v2H80v-2h20zm19.32 5l-1 1.732-17.32-10 1-1.732 17.32 10zM31 120h-2v-20h2v20z' fill='%23673ab7' fill-opacity='0.08' fill-rule='evenodd'/%3E%3C/svg%3E");
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/assets/icons/linux/iconLinux.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/theIYD/source-me/c13cbcfff6408e2a70b9e624759df86eb07195d0/src/assets/icons/linux/iconLinux.png
--------------------------------------------------------------------------------
/src/assets/icons/mac/iconMac.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/theIYD/source-me/c13cbcfff6408e2a70b9e624759df86eb07195d0/src/assets/icons/mac/iconMac.icns
--------------------------------------------------------------------------------
/src/assets/icons/win/iconWin.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/theIYD/source-me/c13cbcfff6408e2a70b9e624759df86eb07195d0/src/assets/icons/win/iconWin.ico
--------------------------------------------------------------------------------
/src/assets/images/house.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/theIYD/source-me/c13cbcfff6408e2a70b9e624759df86eb07195d0/src/assets/images/house.png
--------------------------------------------------------------------------------
/src/assets/images/logo2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/theIYD/source-me/c13cbcfff6408e2a70b9e624759df86eb07195d0/src/assets/images/logo2.png
--------------------------------------------------------------------------------
/src/assets/images/screenshot.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/theIYD/source-me/c13cbcfff6408e2a70b9e624759df86eb07195d0/src/assets/images/screenshot.PNG
--------------------------------------------------------------------------------
/src/components/About.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import logo from '../assets/images/logo2.png';
3 |
4 | class About extends React.Component {
5 |
6 | render() {
7 | return (
8 |
18 |
19 |
Source Me
20 |
27 |
28 |
Source Me is a small application which provides the necessary tools while developing a web application. The need for this application was because i was too lazy to go to the web & search for the packages, or fonts, or material design colors. So a small app was to be built to provide the necessary resources in a single click !
The Material Colors by Google are one of the finest palettes available on the web. These are vibrant, attractive and soft making the design excellent !
Epsum ipsum(a.k.a lorem ipsum) is a filler text or greeking commonly used to demonstrate the textual elements of a graphic document or visual presentation.
The Google Fonts Library is an interactive directory of free hosted application programming interfaces for web fonts. There are over 800 font families available through the main website. All the files are accessible through Github's repository
The Material Design Icons by Google are simple, modern, friendly, and sometimes quirky. Each icon is created using our design guidelines to depict in simple and minimal forms the universal concepts used commonly throughout a UI.
It is a simple Javascript image compressor which takes help of the Browser's native canvas.toBlob API to compress the images without disturbing the quality.
URL shortening is a technique on the World Wide Web in which a Uniform Resource Locator (URL) may be made substantially shorter and still direct to the required page. This is achieved by using a redirect which links to the web page that has a long URL.