Skip to content

Commit b5a1943

Browse files
author
manish
committed
initial commit
0 parents  commit b5a1943

File tree

132 files changed

+15818
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

132 files changed

+15818
-0
lines changed

.gitignore

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2+
3+
# dependencies
4+
.github
5+
node_modules
6+
/.pnp
7+
.pnp.js
8+
9+
# testing
10+
/coverage
11+
12+
# production
13+
/build
14+
15+
# misc
16+
.DS_Store
17+
.env
18+
.env.local
19+
.env.development.local
20+
.env.test.local
21+
.env.production.local
22+
23+
npm-debug.log*
24+
yarn-debug.log*
25+
yarn-error.log*
26+
27+
/palette/

README.md

Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
2+
# NoteNest | Personal Notes & Task Management App
3+
4+
**NoteNest** is a feature-rich personal notes and task management application designed to help you stay organized and productive. Built with a robust client-server architecture, NoteNest allows users to:
5+
- Create, edit, and manage **notes**.
6+
- Organize and track **tasks** effectively.
7+
- Provide and receive **feedback** for collaborative improvements.
8+
- Enjoy a sleek and responsive UI powered by **ShadCN components**.
9+
10+
---
11+
12+
## Features
13+
14+
1. **Notes Management**:
15+
Effortlessly create, edit, delete, and search through your notes.
16+
17+
2. **Task Tracking**:
18+
Organize your tasks with status updates, due dates, and priority management.
19+
20+
3. **Feedback System**:
21+
Submit feedback to enhance your experience or report issues.
22+
23+
4. **Modern UI**:
24+
Built with **ShadCN components**, ensuring a clean, accessible, and responsive design.
25+
26+
5. **Secure Backend**:
27+
Utilizes salted hashing with **PEPPER** and secure JWT tokens for user authentication.
28+
29+
---
30+
31+
## Prerequisites
32+
33+
Before running the app, ensure you have the following installed:
34+
35+
- **Node.js**
36+
- **npm** (Node Package Manager)
37+
- **MongoDB**
38+
39+
---
40+
41+
## Installation
42+
43+
To set up NoteNest, clone this repository and install dependencies for both the **client** and **server**.
44+
45+
### Client Setup
46+
47+
1. Navigate to the `client` directory:
48+
49+
```bash
50+
cd client
51+
```
52+
53+
2. Install dependencies:
54+
55+
```bash
56+
npm install
57+
```
58+
59+
3. Create a `.env` file in the `client` directory with the following content:
60+
61+
```env
62+
VITE_SERVER=<YOUR_SERVER_URL>
63+
```
64+
65+
4. Run the client application:
66+
67+
```bash
68+
npm run dev
69+
```
70+
71+
The client app will run on `http://localhost:5173`.
72+
73+
---
74+
75+
### Server Setup
76+
77+
1. Navigate to the `server` directory:
78+
79+
```bash
80+
cd server
81+
```
82+
83+
2. Install dependencies:
84+
85+
```bash
86+
npm install
87+
```
88+
89+
3. Create a `.env` file in the `server` directory with the following content:
90+
91+
```env
92+
DATABASE_URI=<YOUR_MONGODB_URI>
93+
PORT=<YOUR_SERVER_PORT>
94+
CLIENT_URL=<YOUR_CLIENT_URL>
95+
PEPPER=<YOUR_PEPPER_VALUE>
96+
JWT_SECRET=<YOUR_JWT_SECRET>
97+
```
98+
99+
4. Run the server application:
100+
101+
```bash
102+
npm run dev
103+
```
104+
105+
The server app will run on `http://localhost:5000`.
106+
107+
---
108+
109+
## Accessing the App
110+
111+
Once the client and server are running, you can access NoteNest by navigating to:
112+
113+
[http://localhost:5173](http://localhost:5173)
114+
115+
---
116+
117+
## Key Technologies Used
118+
119+
- **Frontend**: React with **ShadCN UI components**.
120+
- **Backend**: Node.js, Express.js.
121+
- **Database**: MongoDB.
122+
- **Authentication**: JWT with salted password hashing using **PEPPER**.
123+
- **Environment Management**: `.env` for secure configurations.
124+
125+
---
126+
127+
## Contributing
128+
129+
We welcome contributions! To contribute:
130+
1. Fork the repository.
131+
2. Create a new branch for your feature/bugfix.
132+
3. Commit your changes and submit a pull request.
133+
134+
---
135+
136+
## Feedback & Support
137+
138+
Encounter issues or have suggestions? Submit your feedback through the app or raise an issue on the GitHub repository.
139+
140+
---

client/components.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"$schema": "https://ui.shadcn.com/schema.json",
3+
"style": "new-york",
4+
"rsc": false,
5+
"tsx": false,
6+
"tailwind": {
7+
"config": "tailwind.config.js",
8+
"css": "src/index.css",
9+
"baseColor": "zinc",
10+
"cssVariables": true,
11+
"prefix": ""
12+
},
13+
"aliases": {
14+
"components": "@/components",
15+
"utils": "@/lib/utils",
16+
"ui": "@/components/ui",
17+
"lib": "@/lib",
18+
"hooks": "@/hooks"
19+
},
20+
"iconLibrary": "lucide"
21+
}

client/eslint.config.js

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import js from '@eslint/js'
2+
import globals from 'globals'
3+
import react from 'eslint-plugin-react'
4+
import reactHooks from 'eslint-plugin-react-hooks'
5+
import reactRefresh from 'eslint-plugin-react-refresh'
6+
7+
export default [
8+
{ ignores: ['dist'] },
9+
{
10+
files: ['**/*.{js,jsx}'],
11+
languageOptions: {
12+
ecmaVersion: 2020,
13+
globals: globals.browser,
14+
parserOptions: {
15+
ecmaVersion: 'latest',
16+
ecmaFeatures: { jsx: true },
17+
sourceType: 'module',
18+
},
19+
},
20+
settings: { react: { version: '18.3' } },
21+
plugins: {
22+
react,
23+
'react-hooks': reactHooks,
24+
'react-refresh': reactRefresh,
25+
},
26+
rules: {
27+
...js.configs.recommended.rules,
28+
...react.configs.recommended.rules,
29+
...react.configs['jsx-runtime'].rules,
30+
...reactHooks.configs.recommended.rules,
31+
'react/jsx-no-target-blank': 'off',
32+
'react-refresh/only-export-components': [
33+
'warn',
34+
{ allowConstantExport: true },
35+
],
36+
},
37+
},
38+
]

client/index.html

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<!doctype html>
2+
<html lang="en" class="scroll-smooth">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<link rel="icon" href="/favicon.ico" />
6+
<link rel="manifest" href="/manifest.json">
7+
<link rel="icon" href="/favicon.ico" />
8+
<link rel="apple-touch-icon" href="/logo192.png" />
9+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
10+
<title>NoteNest - We serve you productivity via cloud notes</title>
11+
</head>
12+
<body>
13+
<div id="root"></div>
14+
<script type="module" src="/src/main.jsx"></script>
15+
</body>
16+
</html>

client/jsconfig.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"compilerOptions": {
3+
"baseUrl": ".", // The root directory for resolving modules
4+
"paths": {
5+
"@/*": ["src/*"] // Map @/* to ./src/*
6+
}
7+
},
8+
"exclude": ["node_modules"]
9+
}
10+

0 commit comments

Comments
 (0)