Stock Suggestion Manager is a Spring-based web application designed to assist stock market analysts and enthusiasts in managing stock suggestions. The application allows users to track buy or sell suggestions and provides an archive of share suggestions, catering especially to naive retail traders.
- Group Admins and Members can register themselves in the system.
- Admins and Members can log in to the system and maintain an account profile.
- Both roles can edit their account information.
- Users can create a group and become the default admin.
- Admins and Members can view access requests on the Requests tab.
- Members can send a request for data access.
- Admins and Members can view the data.
- Only users with Admin role can delete, update, or add data.
- Users with Member roles are restricted to viewing the data.
- Users with Member roles can vote(like) or down vote(unlike) a suggestion.
- Confidence levels are generated based on votes, used to sort and highlight the data.
- Top-rated suggestions are displayed by default.
- Groups are divided into paid and unpaid
- a separate will be allowed in case if the subscription expired or soon to be expired
- upon payment user will be given access to the group and be able to send request to the group;
- Notification will be sent for removal, accept and reject to the groups action;
For a detailed view of the project board with user stories, tasks, and progress, you can visit our GitHub Project Board.
Make sure you have the following tools installed on your machine:
- IntelliJ IDEA - Integrated Development Environment
- Git - Version Control System
- MySQL Workbench 8.0 - Database Design and Administration Tool
- Java 1.8 - Java Development Kit
- Maven 3.6 or higher - Dependency Management
- Java 8: Programming language for the backend development.
- Maven: Dependency management for the project.
- Spring MVC: Framework for building web applications.
- HTML, CSS, JavaScript: Frontend technologies for building the user interface.
- Spring JPA: Part of the Spring Data project, simplifying data access using JPA.
- Spring Security: Provides authentication and access control for the application.
- MapStruct: Library for mapping Java beans.
- Lombok: Library to reduce boilerplate code in Java classes.
- Spring Boot: Framework for creating standalone, production-grade Spring-based applications.
To clone the project to IntelliJ IDEA, follow these steps:
-
Open IntelliJ IDEA.
-
Click on
File
in the top-left corner. -
Select
New
and then chooseProject from Version Control
. -
Choose
Git
. -
In the "Git Repository URL" field, enter the repository URL.
To use Lombok features in IntelliJ IDEA, follow these steps:
-
Install the Lombok Plugin:
- Open IntelliJ IDEA.
- Navigate to
File
>Settings
. - In the Settings dialog, select
Plugins
. - In the Plugins window, click on
Marketplace
. - Search for "Lombok" and click
Install
next to the Lombok plugin.
-
Enable Annotation Processing:
- Navigate to
File
>Project Structure
. - Select
Modules
on the left. - Under the
Sources
tab, check the box forEnable annotation processing
.
- Navigate to
Now, you should be able to use Lombok annotations in your project.
Assuming the default database password is root
, no additional configuration is required for the database. The
application will use this password to connect to the MySQL database.
- run this query > create database stocksuggestions;
For mail configuration, set the following environment variables in your run configuration:
mail_sender_user
- Your email address for sending emails.mail_sender_pass
- Your email password(Create App password from 2-factor authentication from gmail account)