This project was bootstrapped with Create React App.
- React
- JavaScript
- node.js
- HTML5
- CSS3
This project was written to introduce React and node.js Also, this project was used to pass laboratory works 1 and 2 in the second year of the second semester of studies at Taras Shevchenko Kyiv National University for the discipline of OOP
This project is a simple website on which the user can create his own resume and download it in PDF format. In addition to being able to edit the resume in the future, the user can register and save his resume on the server.
- CV (Curriculum Vitae) Description: A document containing personal, educational, and professional information used for job applications. Users can create, edit, and save their CVs.
- React Description: A JavaScript library for building user interfaces. It is used in this project for the front-end development.
- Node.js Description: A JavaScript runtime for server-side development. This project uses Node.js for handling server requests and database interactions.
- MongoDB Description: A NoSQL database that stores data in a document format. It's used in this project to store user data and CVs.
- Frontend Description: The part of the app that the user interacts with, built using React.
- Backend Description: The server-side of the app that handles API requests, data processing, and database interactions, powered by Node.js.
- JWT (JSON Web Token) Description: A standard for securely transmitting information between the server and client. Used in this project for user authentication.
- REST API Description: A set of API endpoints for interacting with the server. The client communicates with the server via REST API to manage data.
- PDF Generation Description: The process of converting the user's CV into a downloadable PDF. This is done using libraries like html2canvas and jsPDF.
- User Authentication Description: Verifying the identity of users through login credentials. JWT is used for user authentication in this project.
- Save CV Description: Allows users to save their CV, either as the current version or as a new one.
- CV Editing Description: Functionality that allows users to edit various sections of their CV, such as personal details, skills, and work experience.
- MongoDB Connection Description: The link between the server and MongoDB to store and retrieve user data and CVs.
- Client-side Routing Description: Navigation within the app without page reloads, typically handled by React Router.
- Server-side Rendering (SSR) Description: The process of rendering content on the server before sending it to the client. This project mainly uses client-side rendering.
- User Profile Description: The section where users can manage their CVs, including creating, editing, and deleting them.
- Prerequisites Before starting, ensure the following software is installed on your system:
- Node.js (latest stable version recommended)
- MongoDB (running locally or a remote connection URL)
- Install Dependencies To install the required dependencies for both the client and server, execute the following commands in their respective directories:
- Server:
- Client:
- Database Setup In the server.js file located in the server directory, update the MongoDB connection string with your database credentials. For example:
- Starting the Application
- Client (Frontend): Run the following command in the client directory to start the frontend on the local server (default: http://localhost:3000):
- Server (Backend): Run the following command in the server directory to start the backend server (default: http://localhost:5000):
- Accessing the Application Once the client and server are running, you can open your browser and navigate to:
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
Documentation for both the client and server is included in the same folder as the README.md file. It provides detailed descriptions of the API endpoints, application structure, and setup process. Also, information about laboratory work is located in './docs/labs/'