The Smart Printing Service System is a web-based application designed to streamline the process of printing services. It enables users to upload documents, select print configurations, and manage printing tasks efficiently. The system integrates a Next.js frontend, a Spring Boot backend, and a MongoDB database for a modern and scalable solution.
- User Authentication: Secure login and registration for users.
- Document Upload: Users can upload documents for printing.
- Print Configuration: Customize print settings such as page size, orientation, color, and number of copies.
- Order Tracking: Monitor the status of printing tasks in real time.
- Admin Dashboard: Manage users, print requests, and system configurations.
- Notification System: Receive updates on print request statuses.
- Framework: Next.js
- Styling: CSS/SCSS, Tailwind CSS
- State Management: Redux/Context API
- Framework: Spring Boot
- API: RESTful API with Swagger documentation
- Security: Spring Security with JWT for authentication
- Database: MongoDB
- ODM: Spring Data MongoDB
Ensure you have the following installed:
- Node.js (>= 20.x)
- Java (>= 23)
- MongoDB (>= 8.x)
- Navigate to the
frontend
folder:cd frontend
- Install dependencies:
npm install
- Set up environment variables in a
.env
file:GOOGLE_CLIENT_ID=****** GOOGLE_CLIENT_SECRET=****** NEXTAUTH_SECRET=****** BACKEND_URL=http://127.0.0.1:8080
- Start the development server:
npm run dev
- Navigate to the
backend
folder:cd backend
- Build the project:
./mvnw clean package
- Set up environment variables in
application.properties
orapplication.yml
:spring.application.name=backend spring.data.mongodb.host=localhost spring.data.mongodb.port=27017 spring.data.mongodb.database=SE_Project logging.level.root=info logging.file.name=logs/application.log spring.servlet.multipart.max-file-size=1GB spring.servlet.multipart.max-request-size=1GB
- Run the application:
./mvnw spring-boot:run
http://127.0.0.1:8080/swagger-ui.html
http://127.0.0.1:8080/javadocs
- Build the production version:
npm run build
- Deploy using services like Vercel or Netlify.
- Package the application:
./mvnw package
- Deploy the JAR file on a server or containerize using Docker.
- Fork the repository.
- Create a feature branch:
git checkout -b feature/your-feature
- Commit changes:
git commit -m "Add your message here"
- Push to your forked repository:
git push origin feature/your-feature
- Create a pull request.
This project is licensed under the MIT License. See the LICENSE
file for details.