🚧 Deployed at:
🔗 https://journalss-backend.onrender.com/journal/swagger-ui/index.html
This is the backend for the JournalSS App – a secure and private journaling platform built with Spring Boot 3.3.12.
It provides REST APIs for user registration, login, journal entry management, and admin controls.
- 🔐 JWT-based user authentication
- ✍️ CRUD operations for journal entries
- 📈 Integrated Sentiment Analysis API
- 👩💼 Admin dashboard for managing users
- 📄 Interactive Swagger UI for API testing
- 🛢️ MongoDB for fast, scalable storage
- 🐳 Docker-ready for easy deployment
- ⏰ Daily journal reminder emails (via scheduler)
| Category | Tech Used |
|---|---|
| Language | Java 17 |
| Framework | Spring Boot 3.3.12, Spring Security |
| Database | MongoDB |
| Build Tool | Maven |
| Docs & Test | Swagger (SpringDoc OpenAPI) |
| Deployment | Docker, Render |
git clone https://github.com/aastha-sin-09/JournalApp-SpringBoot.git
cd JournalApp-SpringBootCreate a .env file in the root directory with the following values:
MONGO_URI=mongodb+srv://yourusername:yourpassword@cluster.mongodb.net/dbname
JWT_SECRET=your_jwt_secret
MAIL_USERNAME=youremail@example.com
MAIL_PASSWORD=your_app_password
SENTIMENT_API_KEY=your_sentiment_api_key./mvnw spring-boot:runOr, package and run:
./mvnw clean package
java -jar target/journalApp-0.0.1-SNAPSHOT.jardocker build -t journal-app .
docker run -p 8081:8081 --env-file .env journal-app🔗 Swagger UI – Test All Endpoints
Example endpoints:
POST /auth/signup– Create a new userPOST /auth/login– Get JWT tokenGET /user/entries– Get your journal entries (Requires JWT)POST /journal/entry– Create journal with sentiment analysis
You can interact with public and secured routes directly from the Swagger interface.
journalApp/
├── .env
├── .gitignore
├── Dockerfile
├── pom.xml
├── README.md
├── src/
│ ├── main/
│ │ ├── java/com/aastha/journalApp/
│ │ │ ├── JournalApplication.java
│ │ │ ├── config/
│ │ │ │ ├── GlobalCorsConfig.java
│ │ │ │ ├── JwtAuthFilter.java
│ │ │ │ ├── SpringSecurity.java
│ │ │ │ └── SwaggerConfig.java
│ │ │ ├── controller/
│ │ │ │ ├── AdminController.java
│ │ │ │ ├── AuthController.java
│ │ │ │ ├── JournalEntryController.java
│ │ │ │ └── UserEntryController.java
│ │ │ ├── dto/
│ │ │ │ ├── SentimentResponse.java
│ │ │ │ ├── UserLogin.java
│ │ │ │ └── UserSignUp.java
│ │ │ ├── entity/
│ │ │ │ ├── JournalEntry.java
│ │ │ │ └── User.java
│ │ │ ├── repository/
│ │ │ │ ├── JournalEntryRepository.java
│ │ │ │ ├── UserRepository.java
│ │ │ │ ├── UserRepositoryCustom.java
│ │ │ │ └── UserRepositoryImpl.java
│ │ │ ├── Scheduler/
│ │ │ │ └── EmailScheduler.java
│ │ │ ├── service/
│ │ │ │ ├── EmailService.java
│ │ │ │ ├── JournalEntryService.java
│ │ │ │ ├── SentimentService.java
│ │ │ │ ├── UserDetailsServiceImpl.java
│ │ │ │ └── UserService.java
│ │ │ └── util/
│ │ │ └── JwtUtil.java
│ │ └── resources/
│ │ ├── application.yml
│ │ ├── application-dev.yml
│ │ └── application-prod.yml
This backend is deployed on Render using Docker.
🔗 Live Swagger Docs:
https://journalss-backend.onrender.com/journal/swagger-ui/index.html
To deploy your own version:
- Connect this repo to Render
- Use Docker environment
- Add required environment variables
- Render automatically builds and deploys from the Dockerfile
- Aastha Singh — @aastha-sin-09
Contributions are welcome! Follow these steps:
- Fork the repository
- Create a new branch:
git checkout -b feature-name
- Make your changes and commit:
git commit -m "Add feature" - Push your branch:
git push origin feature-name
- Open a Pull Request on GitHub
This project is private and intended for educational/personal use.