A modern web application for managing and searching through markdown journal entries. Built with Node.js, Express, React, and Material-UI.
- Upload and manage markdown files
- Full-text search across entries
- Tag-based filtering
- Modern dark theme UI
- Markdown preview
- Responsive design
- Node.js (v14 or higher)
- npm (v6 or higher)
-
Clone the repository
-
Set the REACT_APP_API_URL=http://YOURIPORHOST:3001 value client .env path
-
Install backend dependencies:
npm install
-
Install frontend dependencies:
cd client npm install -
Start the backend server:
npm run dev
-
In a new terminal, start the frontend development server:
cd client npm start
The application will be available at:
- Frontend: http://YOURIPORHOST:3000
- Backend API: http://YOURIPORHOST:3001
- Upload (one or more) markdown file(s) using the "Upload Markdown" setting
- Add tags to your entry (comma-separated)
- Use the search bar to find entries by content or use the tags field to filter entries by tags
- Pin tags you want to often access
- Viewing and editing of existing markdown files
- A simplified mobile view (but with all the functionality you'd want!)
- Export all your entries as a zip file
journal-search/
├── client/ # React frontend
│ ├── src/
│ │ ├── App.tsx # Main application component
│ │ └── ...
│ └── package.json
├── src/
│ └── server.ts # Express backend
├── uploads/ # Temporary storage for uploaded files
├── journal.db # SQLite database
├── package.json
└── README.md
-
Frontend:
- React
- TypeScript
- Material-UI
- React Markdown
- Axios
-
Backend:
- Node.js
- Express
- TypeScript
- SQLite
- Multer (file uploads)
- Marked (markdown parsing)