This web application provides a service for people to sign up and apply for a job at an amusement park. A person can sign in with their credentials and make an application.
The application is structured into two main components: the backend and the frontend, both of which are written in JavaScript.
For the frontend we are using MVP for clarity, maintainability and cohesion
The backend of our application adopts a combination of MVC (Model-View-Controller) and Integration layered architectures. This design ensures high cohesion and encapsulation while maintaining low coupling, which results in a modular and maintainable codebase.
- API Layer (View): This layer acts as the entry point for all frontend calls. It's responsible for receiving requests from the frontend
- Controller Layer: Serving as the intermediary, the Controller is responsible for all communication between the layers.
- Model Layer: Here, all Sequelize models and Data Transfer Objects (DTOs) reside.
- Integration Layer: Dedicated to database interactions, this layer handles all communications with the database.
here are two steps required in order to add a new language to the application, firstly inside the frontend and secondly inside the database
- Create a new folder inside
frontend/src/translationswith the two letter code of the language. Afterwards, create a configglobal.jsonfilde under the newly created folder and include all the required config data which can be found in another config file. - in
frontend/src/i18n.jsimport the new config file, add the language in supportedLngs and inside resources.
- Firstly find the id's needed to be added inside
application_statusandcompetencewith the following PSQL queries:select * from application_status;andselect * from competence; - Once you have retrieved all the id's you insert the required data with
INSERT INTO public.application_status_translation (application_status_id, lang, translated_name) VALUES(id, '2 letter language', 'application status name');andINSERT INTO public.competence_translation (competence_id, lang, translated_name) VALUES (id, '2 letter language', 'competence name');for each row.
Before you begin, ensure you have installed:
Node.js npm (Node Package Manager)
Node.js and npm
Download and install Node.js from the official website. npm is included with Node.js. After installing, you can verify the installation by running node -v and npm -v in your terminal.
To set up the project on your local machine:
Clone the repository: git clone https://github.com/sebgro98/AwesomeProject Navigate to the project directory: cd AwesomeProject
cd frontend Install dependencies: npm install
cd backend Install dependencies: npm install
Inside the frontend directory: npm start Access the frontend at http://localhost:3000.
- make a copty of the file .env.example and create your own .env file.
- Start your database.
- Inside the backend directory: npm start
https://awesome-project-1fe60cd319b6.herokuapp.com/
- Sebastian Rone
- Sushil KC
- Ingemar Cederholm
- Liam Battini