A Kaleidoscopic Web Experience.
Scroll to the bottom for a fun-fact
- Modern, easy to use, feature-rich and secure Full Stack CRM and File Sharing web application.
- Seamless Chating
- JWT authentication
- File Sharing
- Implement HTTPS to encrypt data transmission between the client and server
- Utilize role-based access control(RBAC) to manage permission
- Employ secure authentication mechanisms, JWT to provide authorized users access
- Embrace a Decoupled architecture with Java backend, React in the frontend, and a RESTful API ensuring independence between the server and client components.
- Implemented a streamlined CI/CD pipeline using GitHub Actions to automate testing, build, and deployment workflows
- Promoting code quality, faster delivery cycles, security management
- Uses AWS S3 service for file download and upload based on user access
- Leverage Docker to containerize applications, ensuring consistency across different platforms
- I'd developed Java backend applications in the past while implementing Spring, Spring Security. I want to create an application with a rich user interface, improved features, better security, and an easy management. This Awesome FullStack Application is the product of that. With a lot more features to come.
- Frontend: React
- Backend: Java Spring & Spring Security
- Database: PostgreSQL, Flyway(Database version/migration)
- File Storage: AWS S3
- CI/CD tool: GitHub Actions, GitHub, Slack, Docker
- This assumes that you already have a working environment to run Java applications, npm, PostgreSQL, and Docker.
- Download the zip file for this repository
- Unzip and open the directory in IDE
- Run
docker login
to make sure you're logged in - Run 'docker-compose up'
- It will pull and run containers for the backend, frontend, and database as specified in yml file
- The credentials for the postgres container can be modified from yml file
- Execute the V1__Initial_Setup.sql script in postgres
- Open and run Main.java in backend/src/main/java/com/backend/Main.java
- Open the terminal in react-ui directory and run
npm run dev
- react-ui is located under frontend/
Access the application at 'http://localhost:5173/signup' in the web browser
- Create an RDS database on AWS with the same version as used for the application(Postgres 15.3 at current version)
- ssh to database through EC2 instance
- install postgres in EC2
- setup TABLE MEMBER
- Add the URL to RDS database in Dockerrun.aws.json at "jdbc:postgresql://{RDS-URL}:5432/member"
- Use Dockerrun.aws.json file to deploy frontend and backend on AWS ElasticBeanStalk
- You can access the deployed application on the ip-address on EBS
- NOTICE Documentation for the security config, access control, and security group setup on aws is unfinished
- First, open an issue describing the bug or enhancement for discussion.
- Create a Pull Request with your changes against the master branch.
- Please feel free to reach out. I will be amused. 😃
"Kaleidoscopic" means quickly changing one thing to another.
This is one of the most robust applications I have developed. I plan to add more features and expand it while also learning to implement and integrate different technologies. Its decoupled architecture allows one to make quick changes and it has immense potential for expansion, from adding more features to integrating it as an in-built chat in a game or using a completely different language in a component. Featuring a single version with the versatility for multi-expansions, embodying a kaleidoscopic nature of possibilities.