This is the Location Identification system built with Symfony for the backend and Nuxt 3 with VueJS 3 for the frontend. The application allows users to log in, view their transactions, and associate transactions with locations using the Google Places API.
Before you begin, ensure you have met the following requirements:
- You have installed Docker and Docker Compose.
- You have installed Node.js and npm.
- You have a Google Places API key.
Follow these steps to set up and run the Symfony backend.
-
Clone the repository
git clone -b v2 git@github.com:your-avatar/symfony-boilerplate.git cd symfony-boilerplate
-
Create your own fork of the project.
-
Install dependencies
composer install
-
Set up environment variables
Create a
.env
file in the project root and add your Google Places API key:GOOGLE_PLACES_API_KEY=your_api_key_here
-
Initialize the database and load fixtures
php bin/console doctrine:database:create php bin/console doctrine:migrations:migrate php bin/console doctrine:fixtures:load
-
Run the Symfony server
symfony server:start
Follow these steps to set up and run the Nuxt 3 frontend.
-
Clone the repository
git clone git@github.com:your-avatar/location-identification-frontend.git cd location-identification-frontend
-
Install dependencies
npm install
-
Configure Axios
Ensure Axios is configured to point to your backend API. Update
nuxt.config.js
if necessary:export default { modules: [ '@nuxtjs/axios', ], axios: { baseURL: 'http://localhost:8000/api', // Update with your Symfony API base URL }, };
-
Add Environment Variables
Create a
.env
file in the project root and add your Google Places API key:GOOGLE_PLACES_API_KEY=your_api_key_here
-
Run the development server
Start the Nuxt development server:
npm run dev
The application should now be running at
http://localhost:3000
.
src/Entity/
: Contains the entity classes such asUser
,Transaction
, andLocation
.src/Controller/
: Contains the controller classes such asTransactionController
.src/Service/
: Contains the service classes such asGooglePlacesService
.config/services.yaml
: Configuration file for services.
pages/
: Contains the page components such aslogin.vue
andpayments.vue
.components/
: Contains reusable components such asLocationModal.vue
.nuxt.config.js
: Configuration file for Nuxt.js..env
: Environment variables for the project.
Navigate to /login
and enter your credentials to log in.
After logging in, you will be redirected to the payments page where you can see your transactions.
Click the "Locate" button next to a transaction to open the modal and select a location.
If you wish to contribute to the project, please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Make your changes.
- Commit your changes (
git commit -m 'Add new feature'
). - Push to the branch (
git push origin feature-branch
). - Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.