Prerequisites

πŸ“‹ Prerequisites #

Before diving into the Smart Library System project, it’s important to ensure that students or participants have the foundational knowledge and hands-on exposure to the following areas:


🌐 1. Basic Understanding of Web Application & Development #

  • Understand the client-server model.
  • Familiarity with how a web application works (browser β†’ server β†’ database).
  • Concept of HTTP verbs: GET, POST, PUT, DELETE, etc.
  • Awareness of RESTful API principles:
    • Resource-oriented endpoints
    • Stateless communication
    • Uniform interface

πŸ”§ 2. API Development in Any Language #

Participants should have prior experience with creating APIs in any programming language.

πŸ’‘ Reference: Check out the πŸ› οΈ Tools & Technology Stack section for supported languages and frameworks (Python, Node.js, Java, C#).

Minimum experience includes:

  • Routing & endpoint creation
  • Accepting and parsing JSON input
  • Sending JSON responses
  • Status codes (200 OK, 400 Bad Request, etc.)

πŸ—ƒοΈ 3. Basic Database Understanding #

Familiarity with relational databases such as PostgreSQL, MySQL, or MSSQL.

Students should know:

  • Creating tables and defining schema
  • Performing CRUD operations:
    • SELECT, INSERT, UPDATE, DELETE
  • Concepts like:
    • Primary keys
    • Foreign keys
    • Relationships (one-to-many, many-to-many)

πŸ”Œ 4. Database Integration with Backend #

Experience connecting an application to a database, such as:

  • Using ORM (like SQLAlchemy, TypeORM, Hibernate, EF Core)
  • Writing raw SQL queries or using query builders
  • Handling database migrations (bonus)
  • Performing DB transactions inside the application code

πŸ” 5. API Testing Skills #

Comfortable with using tools like Postman or Bruno to:

  • Send requests to an API
  • Provide JSON body and headers
  • View responses and validate status codes
  • Automate collections for repeated tests

πŸ’‘ For tools, see: API Testing Tools


🐞 6. Debugging Experience #

The ability to identify and troubleshoot bugs during development.

This includes:

  • Reading and understanding stack traces
  • Using logging tools or breakpoints (e.g., print, console.log, logger.debug())
  • Fixing common backend issues:
    • DB connection errors
    • Invalid input handling
    • Unhandled exceptions

βœ… Note: These skills will ensure a smoother experience throughout the project and allow participants to focus on designing scalable microservices rather than struggling with basic development issues.