A cross-platform mobile application for personal journaling, built with React Native and backed by a Node.js server.
This application allows users to create, manage, and reflect on their personal journal entries. It features a mobile app for easy access and a robust backend for data management and security.
- User authentication (sign-up, login)
- Create, read, update, and delete journal entries
- Categorize entries for better organization
- View summaries of journal entries (daily, weekly, monthly)
- Secure data storage and access
- Mobile App: React Native with TypeScript
- Backend: Node.js, Express, TypeScript
- Database: MySQL
- Authentication: JWT
- Node.js (v14 or later)
- npm or yarn
- PostgreSQL
- Expo CLI (for mobile app development)
- Clone the repository:
git clone https://github.com/addymwenda12/MyJournal.git
cd MyJournal/server
- Install dependencies:
npm install
- Set up environment variables:
- Copy
.env.example
to.env
- Fill in the required variables (database credentials, JWT secret, etc.)
- Set up the database:
mysql -u your_username -p your_database < schema.sql
- Start the server:
npm run start
The server should now be running on http://localhost:3000
.
- Navigate to the mobile app directory:
cd myjournal
- Install dependencies:
npm install
- Start the Expo development server:
expo start
- Use the Expo Go app on your mobile device or an emulator to run the application.
Detailed API documentation can be found in the docs/api.md
file.
We welcome contributions! Please see our CONTRIBUTING.md
file for details on how to contribute to this project.
- Backend: Run
npm test
in the backend directory - Mobile App: Run
npm test
in the mobile directory
This project is licensed under the MIT License - see the LICENSE.md
file for details.
Happy Journaling!