{"id":20942991,"url":"https://github.com/harshitpachori/storypath","last_synced_at":"2026-04-02T03:02:20.932Z","repository":{"id":251483257,"uuid":"822529612","full_name":"HarshitPachori/StoryPath","owner":"HarshitPachori","description":"This is a Journal Application with features like Rich User Interface, Mobile Responsive, JWT Token based Authentication, Robust Backend, Light and Dark Mode, Weekly Sentiment Analysis , Email Notifications for weekly report and Account verification, etc","archived":false,"fork":false,"pushed_at":"2024-09-25T08:37:43.000Z","size":5658,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-03T12:17:39.537Z","etag":null,"topics":["caffeine-cache","docker","docker-compose","gradle","java","javascript","junit5","jwt-authentication","lombok","mockito","mongodb","npm","reactjs","spring-boot","spring-cache","spring-mail","spring-security","stanford-corenlp","swagger-ui","tailwindcss"],"latest_commit_sha":null,"homepage":"https://story-path-nu.vercel.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HarshitPachori.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-07-01T10:16:47.000Z","updated_at":"2025-10-15T07:07:40.000Z","dependencies_parsed_at":"2025-09-03T10:33:38.683Z","dependency_job_id":"15f402ab-be35-41c1-b5ca-50e073d9993f","html_url":"https://github.com/HarshitPachori/StoryPath","commit_stats":null,"previous_names":["harshitpachori/storypath"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/HarshitPachori/StoryPath","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarshitPachori%2FStoryPath","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarshitPachori%2FStoryPath/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarshitPachori%2FStoryPath/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarshitPachori%2FStoryPath/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HarshitPachori","download_url":"https://codeload.github.com/HarshitPachori/StoryPath/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarshitPachori%2FStoryPath/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31294825,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T01:43:37.129Z","status":"online","status_checked_at":"2026-04-02T02:00:08.535Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["caffeine-cache","docker","docker-compose","gradle","java","javascript","junit5","jwt-authentication","lombok","mockito","mongodb","npm","reactjs","spring-boot","spring-cache","spring-mail","spring-security","stanford-corenlp","swagger-ui","tailwindcss"],"created_at":"2024-11-18T23:32:40.803Z","updated_at":"2026-04-02T03:02:20.902Z","avatar_url":"https://github.com/HarshitPachori.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `Story Path - A Journaling Application`\n\nThis project is a `Journal application` by which a registered user can write journal entries about their daily experiences, or memorable moments. With a robust Backend in `Java` and `Spring Boot` \u0026 visualy appealing user interface or Frontend in `ReactJs` , `Javascript` and `TailwindCSS` for overall better user experience and easyness, we have developed this application.\n\n## TECH STACK\n\n- \u003cb\u003e`Backend`\u003c/b\u003e : Java, Spring Boot, Spring Security, Spring Data JPA, JWT Authentication, MongoDB, Stanford Core NLP, Spring Mail, Spring Caching, Postman, Junit, Mockito, TestContainers, Docker, RestAssured, etc.\n- \u003cb\u003e`Frontend`\u003c/b\u003e : ReactJs, React Router Dom, TailwindCSS, Redux-Toolkit JavaScript, etc\n\n## Table of Contents\n\n- [Software and Tools required](#software-and-tools-required)\n- [Installation](#installation)\n- [Running the Server](#running-the-server)\n- [Running the Frontend](#running-the-frontend)\n- [API Endpoints](#api-endpoints)\n\n  - [Register User](#register-user)\n  - [Login User](#login-user)\n  - [User Profile](#user-profile)\n  - [Update User Profile](#update-user-profile)\n  - [Create Journal Entry](#create-journal-entry)\n  - [Get All Journal Entry Of User](#get-all-journal-entry-of-user)\n  - [Update Journal Entry](#update-journal-entry)\n\n- [Responses](#responses)\n  - [Success Responses](#success-responses)\n  - [Error Responses](#error-responses)\n- [Postman Collection](#postman-collection)\n- [Snapshots](#snapshots)\n\n## Software and Tools required\n\n- JDK 17 or more\n- NodeJs\n- Git\n- MongoDB Cliet or Server\n- Docker\n- For Backend (IDE or Editors)\n  - IntelliJ Idea (Community / Ultimate)\n  - Spring Tool Suite (STS)\n  - Eclipse\n  - NetBeans\n  - Visual Studio Code (VS Code)\n- For Frontend (Editors)\n  - Visual Studio Code(VS Code) -\u003e `Recommended`\n  - Sublime Text\n\n## Installation\n\n### Clone Git Repository to your local machine\n\n```bash\ngit clone https://github.com/HarshitPachori/StoryPath.git\n```\n\n### Backend\n\n## Running the Server\n\n- \u003cb\u003eServer Directory\u003c/b\u003e\n\n  ```bash\n  cd storypath_backend\n  ```\n\n- \u003cb\u003eSetup Database\u003c/b\u003e\n\n  - Create `.env` file in root of this directory (storypath_backend) and write below `environment varibales` in to this.\n    ```env\n        PORT=8080\n        MONGODB_URI=your mongodb cluster uri\n        GMAIL_USERNAME=your gmail id\n        GMAIL_APP_PASSWORD=your gmail app password\n        ACTIVE_PROFILE=dev\n    ```\n  - Go to `ride_fast_backend/src/main/resources/application.yaml` file\n    ```yaml\n    spring:\n      application:\n        name: storypath\n      config:\n        import: optional:file:storypath_backend/.env[.properties]\n      profiles:\n        active: ${ACTIVE_PROFILE}\n    server:\n      port: ${PORT}\n    ```\n\n- \u003cb\u003eRun Server\u003c/b\u003e\n  ```bash\n  ./mvnw spring-boot:run\n  ```\n\n## Running the Frontend\n\n- \u003cb\u003eClient Directory\u003c/b\u003e\n\n  ```bash\n  cd storypath_frontend\n  ```\n\n- \u003cb\u003eUpdate or Install Npm Packages\u003c/b\u003e\n  ```bash\n  npm install\n  ```\n- \u003cb\u003eMove to `storypath_frontend/appConstants.js` file\u003c/b\u003e\n\n  - Add the following path in destination field of BASE_URL with your server url.\n\n    ```js\n    export const BASE_URL = \"http://localhost:8080/api/v1\";\n    ```\n\n- \u003cb\u003eRun Client\u003c/b\u003e\n\n  ```bash\n  npm run dev\n  ```\n\n## API Endpoints\n\n- ### Register User\n\n  ```java\n   @route POST /api/v1/auth/register/user\n   @desc Register New User\n   @param {String} username\n   @param {String} email\n   @param {String} password\n   @returns {Object} User\n   @returns {StatusCode} 201 - Created\n   @returns {StatusCode} 400 - Bad Request\n  ```\n\n- ### Login User\n\n  ```java\n   @route POST /api/v1/auth/login\n   @desc Login User\n   @param {String} email\n   @param {String} password\n   @returns {Object} {String} accessToken\n   @returns {StatusCode} 200 - OK\n   @returns {StatusCode} 400 - Bad Request\n   @returns {StatusCode} 404 - Not Found\n  ```\n\n- ### User Profile\n\n  ```java\n   @route GET /api/v1/user/profile\n   @desc Get User Profile\n   @Header {String} jwtToken\n   @returns {Object} {String} message, {Object} User\n   @returns {StatusCode} 200 - OK\n   @returns {StatusCode} 400 - Bad Request\n   @returns {StatusCode} 404 - Not Found\n  ```\n\n- ### Update User Profile\n\n  ```java\n   @route PUT /api/v1/user/profile?wantsSentimentAnalysis=\n   @desc Get User Profile\n   @Header {String} jwtToken\n   @param {Boolean} wantsSentimentAnalysis\n   @returns {Object} {String} message, {Object} User\n   @returns {StatusCode} 200 - OK\n   @returns {StatusCode} 400 - Bad Request\n   @returns {StatusCode} 404 - Not Found\n  ```\n\n- ### Create Journal Entry\n\n  ```java\n   @route POST /api/v1/journal\n   @desc Create New Journal Entry\n   @header {Authorization} jwtToken\n   @param {String} title\n   @param {String} content\n   @param {Array} tags\n   @returns {Object} Journal Entry\n   @returns {StatusCode} 201 - Created\n   @returns {StatusCode} 400 - Bad Request\n  ```\n\n- ### Get All Journal Entry Of User\n\n  ```java\n   @route GET /api/v1/user/journal\n   @desc Get All Journal Entry Of User\n   @header {Authorization} jwtToken\n   @returns {List} Journal Entry\n   @returns {StatusCode} 200 - OK\n   @returns {StatusCode} 400 - Bad Request\n  ```\n\n- ### Update Journal Entry\n\n  ```java\n   @route POST /api/v1/journal/123456789\n   @desc Update Journal Entry\n   @header {Authorization} jwtToken\n   @param {String} journalId\n   @param {String} title\n   @param {String} content\n   @param {Array} tags\n   @returns {Object} Journal Entry\n   @returns {StatusCode} 200 - OK\n   @returns {StatusCode} 400 - Bad Request\n  ```\n\n## Responses\n\n- ### Success Responses\n\n  - \u003cb\u003eLogin User/Driver (Success)\u003c/b\u003e\n\n    ```json\n    {\n      \"statusCode\": 200,\n      \"accessToken\": \"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJqb2huQGdtYWlsLmNvbSIsImlhdCI6MTcxMDY3MjMyMSwiZXhwIjoxNzExNTcyMzIxfQ.LIc-mqKb1-RRsl4W4l4emn0GDfpSXDY1Wy6NfS9-7dY\",\n      \"message\": \"Login Successfully\",\n      \"success\": true\n    }\n    ```\n\n- ### Error Responses\n\n  ```json\n  {\n    \"statusCode\": 400,\n    \"message\": \"All fields are required\",\n    \"errors\": [],\n    \"success\": false\n  }\n  ```\n\n  ```json\n  {\n    \"statusCode\": 404,\n    \"message\": \"Resource Not Found with given Id\",\n    \"errors\": [],\n    \"success\": false\n  }\n  ```\n\n  ```json\n  {\n    \"statusCode\": 401,\n    \"message\": \"You need to be logged in first in order to perform this action\",\n    \"errors\": [],\n    \"success\": false\n  }\n  ```\n\n  ```json\n  {\n    \"statusCode\": 501,\n    \"message\": \"Internal Server Error\",\n    \"errors\": [],\n    \"success\": false\n  }\n  ```\n\n\u003c!-- - ## Postman Collection\n\n  - ### [Postman Collection Link](https://restless-moon-499399.postman.co/workspace/New-Team-Workspace~c7722ba8-7049-40b0-97c9-e367daa05b43/collection/23880545-2625be57-f365-488a-934e-4d7a9fe64389?action=share\u0026creator=23880545)   --\u003e\n\n- ## Snapshots\n  \u003cimg src=\"./snapshots/s1.png\" height=\"500\"/\u003e\u0026nbsp;\n  \u003cimg src=\"./snapshots/s2.png\" height=\"500\"/\u003e\u0026nbsp;\n  \u003cimg src=\"./snapshots/s3.png\" height=\"500\"/\u003e\u0026nbsp;\n  \u003cimg src=\"./snapshots/s4.png\" height=\"500\"/\u003e\u0026nbsp;\n  \u003cimg src=\"./snapshots/s5.png\" height=\"500\"/\u003e\u0026nbsp;\n  \u003cimg src=\"./snapshots/s6.png\" height=\"500\"/\u003e\u0026nbsp;\n  \u003cimg src=\"./snapshots/s7.png\" height=\"500\"/\u003e\u0026nbsp;\n  \u003cimg src=\"./snapshots/s8.png\" /\u003e\u0026nbsp;\n  \u003cimg src=\"./snapshots/s9.png\" /\u003e\u0026nbsp;\n  \u003cimg src=\"./snapshots/s10.png\" /\u003e\u0026nbsp;\n  \u003cimg src=\"./snapshots/s11.png\" height=\"500\"/\u003e\u0026nbsp;\n  \u003cimg src=\"./snapshots/s12.png\" height=\"500\"/\u003e\u0026nbsp;\n  \u003cimg src=\"./snapshots/s13.png\" height=\"500\"/\u003e\u0026nbsp;\n  \u003cimg src=\"./snapshots/s14.png\" /\u003e\u0026nbsp;\n  \u003cimg src=\"./snapshots/s17.png\" /\u003e\u0026nbsp;\n  \u003cimg src=\"./snapshots/s16.png\" /\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharshitpachori%2Fstorypath","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fharshitpachori%2Fstorypath","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharshitpachori%2Fstorypath/lists"}