Loktos Mobile
Loktos Mobile is a professional Backend Web API project that provides the endpoints required by the Gezdir, Campus Hunt, and Campus Hunt Alumni mobile applications to access the Loktos database.
- Context
- Eyesoft Bilişim
- Category
- Web
- Period
- Sep 1, 2021 - Dec 1, 2022
Technologies
C# ASP.NET Core Web API 6 Entity Framework Core 6 Dapper Dependency Injection with IoC Autofac Generic Repository Pattern MySQL Git GitHub Docker Docker Compose JWT AWS SDK Postman AWS EC2 AWS ACM AWS ALB AWS RDS AWS S3
Project Type
- The project is a Backend Web API application developed with the ASP.NET Core Web API template.
- It provides the service layer required by the Gezdir, Campus Hunt, and Campus Hunt Alumni mobile applications.
Architecture / System Design
- The architecture can be described with two main layers: application and database.
- The application layer represents the backend API consumed by the mobile applications.
- The database layer represents the MySQL database created on AWS RDS.
- The application layer includes multiple internal layers to keep modules as independent and extensible as possible.
- Data access is handled through Entity Framework Core, Dapper, stored procedures, and database views where needed.
- Application security is handled with JWT token based authentication.
- Three-dimensional content is stored on AWS S3 and streamed through the backend.
- The API was deployed on AWS EC2 and traffic distribution was supported with AWS ALB.
Technologies Used
- Backend development: C#, ASP.NET Core Web API 6
- Architecture and data access: Dependency Injection with IoC, Autofac, Generic Repository Pattern, Entity Framework Core 6, Dapper
- Database: MySQL, AWS RDS, stored procedures, views
- Security and documentation: JWT, Postman
- Cloud and deployment: Docker, Docker Compose, AWS SDK, AWS EC2, AWS ACM, AWS ALB, AWS S3
- Version control: Git, GitHub
Key Technical Details and Modules
- Designed the backend according to a layered architecture.
- Managed the database with MySQL Workbench.
- Used stored procedures and views for various database operations.
- Created a Postman Collection document for backend endpoints.
- Designed the database structure required by the backend.
- Deployed the application on an AWS EC2 virtual machine.
- Used JWT tokens for application security.
- Integrated AWS S3 for storing and streaming three-dimensional content.
- Configured AWS ALB to distribute API traffic.
- Added multi-language support at the database layer.
Participation and Timeline
- The project was developed for Eyesoft Bilişim.
- I developed the project independently based on the requirements shared by the company's co-founder.
- I worked on the project during my time at the company between September 2021 and December 2022.
- The project is still in use.
Project Management / Team Structure
- We did not use a Jira-like project management tool for this project.
- I installed GitLab CE on the company's server and moved the project repository there for version control.
- I also set up Slack for communication and integrated it with the GitLab repository.
- The main stakeholder I worked with was the company's co-founder.
Personal Contributions and Responsibilities
- I was responsible for the entire project during the period I worked on it.
- I handled backend development, database design, endpoint design, AWS deployment, S3 integration, security, documentation, and internal development infrastructure.
Deployment Information
- I deployed the project on AWS EC2 virtual machines.
- There is no public address shared for confidentiality reasons.
- The project is still running on the related cloud infrastructure.