Skip to content

watisluv1910/the-sun-reader_project

 
 

Repository files navigation

Project version Contributors Static Badge

The Sun Reader Project

"The Sun Reader" project is a full-stack web application developed for study purposes. It serves as a news aggregator with an additional bookmarking functionality.

Features

  • Browsing and reading news articles from various sources.
  • Registration and login functionality.
  • Bookmarking articles for future reference.
  • User profile page for bookmarks managing.
  • Additional capabilities for moderators and administrators.
  • Integration with external APIs.

Technologies Stack

  • Front-end: NodeJS, ReactJS, HTML5, CSS3
  • Back-end: Spring Boot (Kotlin), Mockk, JUnit5, Dokka
  • Database: MySQL
  • Docker: Containerization and deployment
  • HTTP Client: Axios
  • Version Control: Git

Quick Start

To quickstart The Sun Reader project, follow these steps:

  1. Clone the repository to your local machine.

    git clone https://github.com/watisluv1910/mirea_5s_server-side-development_course-work.git
  2. Make sure you have Docker installed and enabled.

  3. Build and run the Docker containers using the docker-compose up command in project's root directory.

  4. Access the application in your browser at http://localhost:3000.

Local Development

Getting started

To start the project locally:

  1. Clone the repository to your local machine.

    git clone https://github.com/watisluv1910/mirea_5s_server-side-development_course-work.git
  2. Run the following command from project's root directory:

    For Unix-like systems:

    ./mvnw clean package

    For Windows:

    mvnw.cmd clean package
  3. Install the tools listed below if you don't already have them:

  4. In .env file located in the root directory modify MYSQL_USER and MYSQL_PASSWORD to match your MySQL Server credentials. Modify other environmental variables according to your preferences and needs. Note that:

    • ENV_FILE variable should NOT be modified.
    • Provided MYSQL_USER should at least have the following privileges:
      • ALTER, CREATE, CREATE TABLESPACE, DROP, INDEX, REFERENCES;
      • SELECT, UPDATE, DELETE.

  5. Check MySQL Server is running at MYSQL_TCP_PORT. Change MYSQL_TCP_PORT environmental variable if needed.

  6. Run backend server by executing the following commands from project's root directory:

    java -jar backend/target/backend-<version>.jar
  7. Run frontend server by executing the following commands from project's root directory:

    cd react-ui && npm run start
  8. Access the application in your browser at http://localhost:3000 (or another port if you changed FRONTEND_DEFAULT_PORT environment variable).

Coding Rules

To ensure consistency throughout the source code, keep these rules in mind as you are working:

Commit Message Guidelines

We have very precise rules over how git commit messages can be formatted. This leads to more readable messages that are easy to follow when looking through the project history.

Commit message format

Each commit message consists of a header, a body and a footer. The header has a special format that includes a type, a scope and a subject:

<type>(<scope1>, <scope2>): <subject>  
<BLANK LINE> 
<body>  
<BLANK LINE>
<footer>

The header is mandatory and the scopes of the header are optional.

Samples:

refactor(env): update example .env file to match services requirements
fix(proxy)!: implemented test proxy configuration

BREAKING CHANGE!

General Development Workflow

  1. Make changes to the code in the respective folders.
  2. Run the application locally using the provided scripts or commands.
  3. Test your changes and verify that the application is functioning as expected.
  4. Commit your changes to a new branch and push them to the remote repository.
  5. Create a pull request for review and merge it into the main branch.

Contact

For any inquiries or questions, please contact at [email protected] with tag SunReader.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Kotlin 53.7%
  • JavaScript 42.0%
  • Shell 2.9%
  • Dockerfile 0.6%
  • Batchfile 0.3%
  • SCSS 0.3%
  • HTML 0.2%