SkyLink is a fictional startup offering satellite internet connectivity for remote areas. This is a project for a website, developed using React, Bootstrap, Spring Boot, and PostgreSQL, focusing on responsive design and smooth animations.
- React with TypeScript
- Vite for build tooling
- TanStack Query for API state management
- Bootstrap for responsive design
- AOS (Animate On Scroll) for animations
- Spring Boot with Java
- PostgreSQL database
- REST APIs for data communication
- JPA/Hibernate for data persistence
- Google Maps Embed API for location services
- Axios for HTTP requests
Before running the project, make sure you have the following installed:
- Node.js (v16 or higher)
- npm or yarn
- Java (JDK 11 or higher)
- PostgreSQL (v12 or higher)
- Git
- Install PostgreSQL if you haven't already
- Create a new database:
CREATE DATABASE skylink_db;
- Create a user (optional but recommended):
CREATE USER skylink_user WITH PASSWORD 'your_password'; GRANT ALL PRIVILEGES ON DATABASE skylink_db TO skylink_user;
Update application.properties file in server/src/main/resources/ with:
# Database Configuration
spring.datasource.url=jdbc:postgresql://localhost:5432/skylink_db
spring.datasource.username=skylink_user
spring.datasource.password=your_password
spring.datasource.driver-class-name=org.postgresql.Driver
# JPA/Hibernate Configuration
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
# Server Configuration
server.port=8080Create a .env file in the client/ directory:
# API Configuration
VITE_API_BASE_URL=http://localhost:8080/api
# Google Maps API (if using)
VITE_GOOGLE_MAPS_API_KEY=AIzaSyAOVYRIgupAurZup5y1PRh8Ismb1A3lLaogit clone https://github.com/atharvnuthi/skylink-project.git
cd skylink-projectcd server
# Make gradlew executable (Linux/Mac)
chmod +x gradlew
# Build and run the Spring Boot application
./gradlew bootRun
# Alternative: Using Gradle Wrapper (Windows)
gradlew.bat bootRuncd client
npm install
npm run dev- Frontend: http://localhost:5173
- Backend API: http://localhost:8080/api
- Database: localhost:5432 (PostgreSQL default port)
POST /api/usuarios/login- User loginPOST /api/usuarios/cadastrar- User registration
GET /api/produtos- Get all products (with pagination)GET /api/produtos/{id}- Get product by IDPOST /api/produtos- Create new productPUT /api/produtos/{id}- Update productDELETE /api/produtos/{id}- Delete product
GET /api/categorias- Get all categoriesGET /api/categorias/{id}- Get category by IDPOST /api/categorias- Create new categoryPUT /api/categorias/{id}- Update categoryDELETE /api/categorias/{id}- Delete category
GET /api/carrinho/usuario/{usuarioId}- Get user's cartPOST /api/carrinho/adicionar- Add item to cartPUT /api/carrinho/atualizar/{itemId}- Update cart item quantityDELETE /api/carrinho/remover/{itemId}- Remove item from cartDELETE /api/carrinho/limpar/{usuarioId}- Clear user's cart
GET /api/favoritos/usuario/{usuarioId}- Get user's favoritesPOST /api/favoritos/adicionar- Add product to favoritesDELETE /api/favoritos/remover- Remove product from favoritesGET /api/favoritos/verificar/{usuarioId}/{produtoId}- Check if product is favorited
- User Authentication - Login and registration system
- Product Management - Browse, search, and manage products
- Category Management - Organize products by categories
- Shopping Cart - Add/remove items, update quantities
- Favorites - Save favorite products
- Responsive Design - Works on desktop and mobile devices
- Smooth Animations - Enhanced user experience with AOS
- Fork the repository
- Create a feature branch (
git checkout -b feature/new-feature) - Commit your changes (
git commit -am 'Add new feature') - Push to the branch (
git push origin feature/new-feature) - Create a Pull Request
This project is for educational purposes.