React Journal is a full-stack journaling application where users can securely create, manage, and delete personal journal entries.
Built with React and Express, the app uses JWT-based local authentication and MongoDB for data persistence.
- React 19 + Vite
- Tailwind CSS
- React Router DOM
- Axios
- React Icons
- Express.js
- MongoDB + Mongoose
- JSON Web Tokens (JWT)
- bcryptjs
- dotenv
React-Journal/ βββ backend/ # Express server & API routes β βββ src/ β βββ index.js βββ frontend/ # React app powered by Vite β βββ src/ β βββ main.tsx β βββ App.tsx β βββ components/ βββ README.md
- Local authentication using JWTs
- Passwords securely hashed using bcryptjs
- No third-party login (e.g., Google, GitHub)
- Entries are user-specific
- Stored in MongoDB via Mongoose
- Accessed via secure, RESTful API routes
git clone https://github.com/chemicoholic21/React-Journal.git cd React-Journal
cd backend npm install Create a .env file in the backend folder:
PORT=5000 MONGODB_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret
npm run dev Backend runs at: http://localhost:5000
cd frontend npm install npm run dev Frontend runs at: http://localhost:5173
β Features π Local user registration & login (JWT-based)
π Password encryption with bcrypt
π Create, edit, and delete journal entries
π§Ύ Persistent storage in MongoDB
π± Responsive UI with Tailwind CSS
π§Ό Clean separation of frontend/backend
π§ͺ Scripts Frontend
npm run dev # Start Vite dev server npm run build # Build for production npm run preview # Preview production build npm run lint # Lint codebase
Backend
npm run dev # Run with nodemon (development) npm start # Run production server