A secure, modern web platform for managing asylum applications, connecting seekers with trusted centers, and providing support to those in need.
- Project Overview
- Features
- Tech Stack
- Screenshots
- Getting Started
- Project Structure
- API Endpoints
- Environment Variables
- Contributing
- License
- Contact
SeekAsylum is a full-stack web application designed to help asylum seekers find, apply to, and connect with reputable asylum centers. The platform streamlines the process, offers real-time support, and provides a secure environment for sensitive data.
- User registration and authentication (JWT-based)
- Role-based access (asylum seeker, admin, center manager)
- Browse and search asylum centers by location, availability, and features
- Highlighted and trusted centers
- Application management and status tracking
- 24/7 support and resources
- Responsive, accessible UI with light/dark mode
- Secure password storage and user data protection
Backend:
- Java 17
- Spring Boot 3.2.x
- Spring Security (JWT)
- Spring Data JPA (Hibernate)
- MySQL
Frontend:
- React 18
- React Router
- Tailwind CSS (with dark mode)
- Axios
Other:
- Maven (backend)
- npm (frontend)
- Git & GitHub
Add screenshots of your landing page, login, and dashboard here!
- Java 17+
- Node.js (v16+ recommended) & npm
- MySQL Server
- Maven
-
Clone the repository:
git clone https://github.com/yourusername/Seekasylum.git cd Seekasylum -
Configure the database:
- Create a MySQL database:
CREATE DATABASE seekasylum;
- Update
src/main/resources/application.propertieswith your DB username and password.
- Create a MySQL database:
-
Build and run the backend:
mvn clean install mvn spring-boot:run
The backend will run at http://localhost:8086.
-
Navigate to the frontend directory:
cd frontend -
Install dependencies:
npm install
-
Start the frontend:
npm start
The frontend will run at http://localhost:3000.
Seekasylum/
├── src/
│ ├── main/
│ │ ├── java/asylum/Seekasylum/
│ │ │ ├── controller/
│ │ │ ├── model/
│ │ │ ├── repository/
│ │ │ ├── service/
│ │ │ └── SeekasylumApplication.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ ├── context/
│ │ ├── App.js
│ │ └── ...
│ ├── public/
│ └── package.json
├── pom.xml
└── README.md
POST /api/users/register— Register a new userPOST /api/users/login— User login
GET /api/asylums— List all asylumsGET /api/asylums/{id}— Get asylum by IDGET /api/asylums/country/{country}— Get asylums by countryGET /api/asylums/city/{city}— Get asylums by cityGET /api/asylums/available— Get available asylumsPOST /api/asylums— Create new asylum (admin/manager)PUT /api/asylums/{id}— Update asylumDELETE /api/asylums/{id}— Delete asylum
-
Backend:
Set your DB credentials and JWT secret insrc/main/resources/application.properties. -
Frontend:
If you use a.envfile, set the backend API URL (optional for proxy).
- Fork the repo
- Create a feature branch (
git checkout -b feature/your-feature) - Commit your changes (
git commit -m 'Add new feature') - Push to your branch (
git push origin feature/your-feature) - Open a Pull Request
This project is licensed under the MIT License. See the LICENSE file for details.
For support or questions, open an issue or email:
kapirathraina@gmail.com