This is a "Second Brain" application, designed to help you organize, store, and connect your thoughts, notes, and ideas.
- User Authentication: Secure user authentication using JWT (JSON Web Tokens).
- Content Management: Create, retrieve, update, and delete your content.
- Tagging: Assign tags to your content for better organization.
- Sharing: Generate a public link to share your content with others.
- User Authentication: Signup and signin forms.
- Dashboard: A dashboard to view and manage your content.
- Create Content Modal: A modal to add new content.
- Custom UI Components: A custom-built UI library with the following components:
- Button
- Card
- Input
- Sidebar
- SidebarItem
- and various icons.
- Framework: Node.js with Express
- Database: MongoDB with Mongoose
- Authentication: JWT (JSON Web Tokens)
- Password Hashing: bcrypt
- Validation: Zod
- Framework: React
- Build Tool: Vite
- Language: TypeScript
- Styling: Tailwind CSS
The project is a monorepo with the following structure:
/
├── backend/
│ ├── src/
│ └── ...
└── frontend/
├── src/
└── ...
backend/: A Node.js, Express, and MongoDB application that serves as the API.frontend/: A React, TypeScript, and Vite application that provides the user interface.
To get started with development, you will need to run both the backend and frontend services.
- Node.js (v14 or later)
- npm
- MongoDB
-
Navigate to the backend directory:
cd backend -
Install dependencies:
npm install
-
Create a
.envfile in thebackenddirectory and add the following environment variables:JWT_SECRET=your_jwt_secret MONGO_URL=your_mongo_db_url -
Start the server:
npm run dev
-
Navigate to the frontend directory:
cd frontend -
Install dependencies:
npm install
-
Start the development server:
npm run dev
Contributions are welcome! Please feel free to submit a pull request.