Skip to content

To develop a non-web-based software application in Java to support individual and collaborative plot development for stories. The application is expected to be deployed on laptops and desktops.

License

Notifications You must be signed in to change notification settings

thenameisajay/StoryArch

Repository files navigation

StoryArch - Plot development Application for writers

--

DESCRIPTION

StoryArch is a creative tool aimed at helping writers build their narratives more efficiently. It streamlines the process of structuring a story, enabling users to outline their plots, build characters, and track story progress effortlessly. The idea was to develop a non-web-based software application in Java to support individual and collaborative plot development for stories. The application is expected to be deployed on laptops and desktops.

Technologies Used

  • Java 17
  • Intelli - J Ultimate
  • Git
  • JUnit 5

FILE STRUCTURE :

  1. Terminal folder - Terminal View
  2. src - Back end development folder

SETUP AND INSTALLATION

Terminal Usage or IDE Based For Backend :

  1. Compile all files using javac *.java or open using an IDE (Preferably Intelli-J)
  2. Run the MainApp.java file using java MainApp
  3. To access the Projects, Storyboard or chapter -> a random ID is assigned, this can be viewed using (the View option).


FUNCTIONALITIES :

  1. Users must register with the application before they can use it;
  2. Each story has a project associated with it;
  3. A story plot can be developed by an individual or a team of writers
  4. The free version of the application supports individual writers, with each allowed a maximum of 10 projects
  5. The paid version (via annual subscription) adds support for teams and unlimited projects;
  6. The application should allow users of the free version to upgrade to the paid version at any time;
  7. The paid version should remind users of upcoming subscription deadlines and allow them to renew using an external payment service;
  8. When there is a team of writers, the story has a chief writer who sets up a project in the application for that item and invites the rest of the team to join;
  9. The application should provide graphical and textual interfaces for plot development;
  10. Plots do not have to be developed in a linear fashion;
  11. When there is a team of writers, each writer can work on a different part of the plot simultaneously;
  12. The application should maintain versions of the plot based on commits by writers;
  13. It should be possible for writers to work in ‘offline’ mode when they are not connected to the network;
  14. The application should allow writers to visualise the story in chronological or chapter order;
  15. Writers should have the option of making use of and paying for external illustration services;
  16. The application should generate chapter outlines as text files to be used with other word processing applications;
  17. Writers should be able to submit plots to publishers (who are external to the system) via existing APIs.

No of Test Cases: 93

Classes Tested:

  1. Model Layer: 5
  2. Service Layer: 5

Test Coverage :

Screenshot 2023-04-23 at 1 15 27 PM

CONTRIBUTION GUIDELINES :

  • Clone the repository from GitHub server.
  • Create a new branch for your feature or bug fix.
  • Write unit tests for your code.
  • Implement your feature or bug fix.
  • Ensure all tests pass.
  • Commit your changes and push to your branch on the GitHub server.
  • Submit a merge request to merge your changes into the main branch.

License

This project is done part of coursework of CS5033 - Software Architecture of the Computer Science Dept of University of St.Andrews.

This project is licensed under the MIT License. See the LICENSE file for more information.

About

To develop a non-web-based software application in Java to support individual and collaborative plot development for stories. The application is expected to be deployed on laptops and desktops.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages